我正在用精灵做一个小游戏,角色根据按下的键移动(箭头)。我注意到.KeyDown()
方法一直被调用,直到释放任何键。
e.g。当用户按下向上箭头时,.KeyDown()
的方法不断被调用。如果按下向下箭头,仍然按下向上箭头,KeyEventArgs
现在从向下箭头接收输入。最后,当向上箭头被释放时,.KeyDown()
事件将停止被称为,即使仍然按下向下箭头。
如何“重置”输入并告诉编译器继续调用.KeyDown()
?
答案 0 :(得分:3)
一个非常好的问题 - 我不相信有任何方法可以覆盖这种默认行为,但是通过跟踪自己的按键来确保可以避免这种影响 - 即,当.KeyDown()
是调用,将键添加到跟踪它的某种类型的结构中 - 然后,当调用.KeyUp()
时,从该结构中删除键。
然后,只需反复检查当前按下的键的结构,并使您的移动基于 ,而不是.KeyDown()
告诉您的。
答案 1 :(得分:0)
您可以尝试使用KeyUp
来检测密钥何时被释放。然后,您可以假设在调用KeyUp
之前仍然按下该键。