Shape.Left += x;
Shape.Top += y;
Перемещение Shape по форме.КАК?
Я хочу создать игру,но необхадимо перемещять Shape по форме при помощи кнопки.Кто нить подскажет какой код должен быть в кнопке???
Цитата: karimchik
Я хочу создать игру,но необхадимо перемещять Shape по форме при помощи кнопки.Кто нить подскажет какой код должен быть в кнопке???
Код:
Это имешь ввиду?
VB.NET, Delphi, C#, MFC;
Но в принципе общий совет:
Обработай событие KeyDown.
Пример на C#
Код:
private void InitializeComponent()
{
this.SuspendLayout();
// Form1
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 271);
this.Name = "Form1";
this.Text = "Form1";
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown);
this.ResumeLayout(false);
}
{
this.SuspendLayout();
// Form1
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 271);
this.Name = "Form1";
this.Text = "Form1";
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown);
this.ResumeLayout(false);
}
Код:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
MessageBox.Show(e.KeyCode.ToString());
if(e.KeyCode==Keys.Up)
{ /*....*/}
else if(e.KeyCode==Keys.Down)
{ /*....*/}
else if(e.KeyCode==Keys.Left)
{ /*....*/}
else if(e.KeyCode==Keys.Right)
{ /*....*/}
}
{
MessageBox.Show(e.KeyCode.ToString());
if(e.KeyCode==Keys.Up)
{ /*....*/}
else if(e.KeyCode==Keys.Down)
{ /*....*/}
else if(e.KeyCode==Keys.Left)
{ /*....*/}
else if(e.KeyCode==Keys.Right)
{ /*....*/}
}
Код:
private void Form2_KeyDown(object sender, KeyEventArgs e)
{
int xoffset = 0, yoffset = 0;
int delta = 5;
switch (e.KeyCode)
{
case Keys.Up:
yoffset -= delta;
break;
case Keys.Down:
yoffset += delta;
break;
case Keys.Left:
xoffset -= delta;
break;
case Keys.Right:
xoffset += delta;
break;
}
UpdateShapeLocation(xoffset, yoffset);
}
private void UpdateShapeLocation(int xoffset, int yoffset)
{
Point loc = shape.Location;
shape.Location = new Point(loc.X + xoffset, loc.Y + yoffset);
}
{
int xoffset = 0, yoffset = 0;
int delta = 5;
switch (e.KeyCode)
{
case Keys.Up:
yoffset -= delta;
break;
case Keys.Down:
yoffset += delta;
break;
case Keys.Left:
xoffset -= delta;
break;
case Keys.Right:
xoffset += delta;
break;
}
UpdateShapeLocation(xoffset, yoffset);
}
private void UpdateShapeLocation(int xoffset, int yoffset)
{
Point loc = shape.Location;
shape.Location = new Point(loc.X + xoffset, loc.Y + yoffset);
}
не распространяте антинауку. MFC - не язык.
А Дельфи и вб обсуждались бы в другом разделе.
Язык borland c++ builder 6.
{
Shape1->Left + 2;
}
Попробовал вот это... но не хочет(((
Повторяю язык borland c++ builder 6.
Цитата: karimchik
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Shape1->Left + 2;
}
Попробовал вот это... но не хочет(((
Повторяю язык borland c++ builder 6.
{
Shape1->Left + 2;
}
Попробовал вот это... но не хочет(((
Повторяю язык borland c++ builder 6.
Жжешь :) пиши ещё :)
Надо так: Shape1->Left += 2;
или так: Shape1->Left = Shape1->Left + 2;
А лучше почитай книги по программированию ... потому что такое писать, это надо совсем ничего не понимать...
if (Shape1 == Shape2)
конечно нужно указывать грани шейпа тока ненаю каким кодом!Помоги плизз!
Цитата: karimchik
GreenRiver Огроменное спасибо!!!!Зароботало!Я книги читаю,просто ещё не твоего уровня))И ещё вопросик))Надо сделать колюжен детекшен!Наскока я понял нужно сделать условие.Например -
if (Shape1 == Shape2)
конечно нужно указывать грани шейпа тока ненаю каким кодом!Помоги плизз!
if (Shape1 == Shape2)
конечно нужно указывать грани шейпа тока ненаю каким кодом!Помоги плизз!
Пользуйся гуглом. Достаточно запроса типа: "проверка пересечения прямоугольников"... Там куча примеров кода...
P.S. вообще такие темы надо поднимать в разделе "для новичков"... у этого форума есть правила и стоит их уважать. За намного более сложные вопросы порой отправляли курить мануалы!