В настоящее время я работаю над небольшой игрой в качестве проекта WinForms. Игровое поле построено из сетки тайлов, по которой может двигаться игрок (отдельный класс). Я хочу, чтобы игрок двигался с помощью клавиш со стрелками и настроил для него обработчик событий, но он, кажется, никогда не вызывается.
(минимизированный) класс проигрывателя, который реализует пакеты System.Windows.Forms для KeyEventArgs:
public class Player : MovableObject
{
public Player(Playtile position) : base(position)
{
EntityColor = ElementColors.PlayerColor;
PostConstructor(position);
}
/// <summary>
/// Reads keypress via eventhandler KeyEventArgs (key down).
/// </summary>
private void ReadKeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Up:
// move up.
break;
case Keys.Right:
// move right.
break;
case Keys.Down:
// move down.
break;
case Keys.Left:
// move left.
break;
}
}
}
В настоящее время ReadKeyDown никогда не вызывается. Как на самом деле назначить / связать это событие KeyEventDown с проигрывателем, чтобы он фактически вызывал этот метод при нажатии клавиши?
KeyEventArgs в C # , кажется, просто говорит this.KeyDown += ReadKeyDown;
, но он не распознает KeyDown как что-либо и не дает мне возможную отсутствующую ссылку на сборку.