蛇游戏赢形式

时间:2012-08-14 18:21:44

标签: c# winforms

我一直在尝试使用win表单创建一个蛇游戏,并且我一直在使用箭头键移动我的按钮工具和事件处理。如果有人可以向我解释如何使其工作

将会非常有帮助

1 个答案:

答案 0 :(得分:1)

根据您提供的非常有限的信息,通常的方法应该是处理包含您的游戏的Form的KeyDown事件。当表单具有焦点时,只要按下某个键,就会在按下时触发此事件。 (KeyPress事件需要在引发之前按下和释放键;同样的动作也会引发KeyDown和KeyUp的组合。)

处理KeyDown事件时,请检查KeyEventArgs的KeyData属性。该属性(只读)是一个标记的枚举(意味着它可以包含可用值的组合)。您需要查看是否按下了以下一项或多项:Keys.Up,Keys.Down,Keys.Left和Keys.Right。这些是箭头键。您还可以允许用户分别使用具有不同Keys枚举值的小键盘8,2,4和6。如果KeyData具有其中之一,则更改snake正在移动的方向,并将KeyEventArgs的Handled属性设置为true,这将告知响应按键的任何其他代码不继续。这将防止与箭头键相关的默认行为导致问题。

了解用户可能会按下多个箭头键。如果这些键位于相反的方向,或者您不允许在一个方向上移动,则需要决定如何处理这种情况。简单的解决方案是什么都不做。更复杂的解决方案是跟踪当前按下的箭头键,如果按下多个箭头键,则侦听KeyUp事件,该事件将告诉您何时释放一个或多个键,并且仅在当前按下一个键时更改方向。 / p>