我目前正在开发一个作为 WinForms 项目的小游戏。游戏场是由玩家(一个单独的类)可以继续前进的瓷砖网格构建的。我希望玩家使用箭头键移动并为其设置了一个事件处理程序,但它似乎从未被调用过。
(最小化)播放器类,它为 KeyEventArgs 实现 System.Windows.Forms 包:
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 事件分配/绑定到播放器,以便它实际上在按键时调用该方法?
C# 中的 KeyEventArgs似乎只是说this.KeyDown += ReadKeyDown;
,但它不会将 KeyDown 识别为任何东西,也不会给我一个可能缺少的程序集引用。