C#中KeyDown()的简单但棘手的问题#

Ceh*_*iro 5 c# events

我正在用精灵做一个小游戏,角色根据按下的键移动(箭头).我注意到该.KeyDown()方法一直被调用,直到释放任何键.

例如,当用户按下向上箭头时,.KeyDown()保持被调用的方法.如果按下向下箭头,仍然按下向上箭头,则KeyEventArgs现在从向下箭头接收输入.最后,当释放向上箭头时,即使仍然按下向下箭头,.KeyDown()事件也会停止被调用.

如何"重置"输入并告诉编译器继续调用.KeyDown()

use*_*tbd 3

一个非常好的问题 - 我不相信有任何方法可以覆盖此默认行为,但肯定可以通过自己跟踪按键来避免这种影响 - 即,当被.KeyDown()调用时,将键添加到某种类型跟踪它的结构 - 然后,当.KeyUp()被调用时,从该结构中删除密钥。

然后,只需重复检查当前按下的键的结构,并根据该结构进行移动,而不是根据.KeyDown()告诉您的内容。