Как обработать нажатие кнопки на клавиатуре - 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д