Как обработать нажатие кнопки на клавиатуре - C#
Формулировка задачи:
Здравствуйте.
Пытаюсь написать игру ханойские башни
Механика игры: над штырями бегает квадратик (объект класса Arrow, класс Arrow, класс Arrow в свою очередь унаследован от класса Control), текущее положение квадратика определяет текущий штырь.
По нажатию кнопок вправо/влево на клавиатуре квадратик должен "перепрыгивать" в другое положение. Он, как ни странно не перепрыгивает, иначе я не обратился бы к вам.
Помогите найти ошибку.
Вот код класса Arrow и связанный с ним код в форме
class Arrow:Control
{
int currentpos;
Point [] pos = new Point [3];
public Arrow()
{
Meth();
this.Width = 7;
this.Height = 7;
this.BackColor = Color.Navy;
this.Location = pos[2];
}
public void NextPos()
{
currentpos++;
currentpos = currentpos % 3;
this.Location = pos[currentpos];
}
public void PrevPos()
{
currentpos--;
currentpos = currentpos % 3;
this.Location = pos[currentpos];
}
public void Meth()
{
pos[0] = new Point(100, 50);
pos[1] = new Point(300, 50);
pos[2] = new Point(500, 50);
}
}public partial class Form1 : Form
{
Arrow a = new Arrow();
private void Form1_Load(object sender, EventArgs e)
{
this.Controls.Add(a);
a.Show();
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Right)
{
a.NextPos();
}
if (e.KeyCode == Keys.Left)
{
a.PrevPos();
}
}
}Решение задачи: «Как обработать нажатие кнопки на клавиатуре»
textual
Листинг программы
currentpos++; currentpos = currentpos % 3;