(VB) 如何只检测一次按键,即使是按住按键?
(VB) How to detect a keypress only once, even when holding the key down?
我最近一直在做一个大型游戏项目,并且了解了几种检测键盘输入的方法。对于移动,我使用 getasynckeystate(这是完美的),因为它会在每次按下时发送一个信号。
然后是另一个方法,就是keydown。此方法适用于单个按键,但一秒钟后开始向按键操作发送垃圾邮件。
我的目标是找到一种只检测一次按键的东西,即使你按住了那个键;一旦你松开钥匙,它就会让你再次击中它。请帮助并感谢阅读本文!
示例:
如果 GetAsyncKeyState(Convert.ToInt32(Keys.W)) 那么....
如果 e.keycode = keys.B 那么....
'keyUp' 事件捕获被按下或仅保持按下一次的键:
Sub Control_KeyUp(sender As Object, e As KeyEventArgs) Handles Control.KeyUp
MsgBox("Pressed key: " & e.KeyCode.ToString())
End Sub
编辑:删除了私有访问,因此可以从另一个 class.
调用它
我最近一直在做一个大型游戏项目,并且了解了几种检测键盘输入的方法。对于移动,我使用 getasynckeystate(这是完美的),因为它会在每次按下时发送一个信号。
然后是另一个方法,就是keydown。此方法适用于单个按键,但一秒钟后开始向按键操作发送垃圾邮件。
我的目标是找到一种只检测一次按键的东西,即使你按住了那个键;一旦你松开钥匙,它就会让你再次击中它。请帮助并感谢阅读本文!
示例:
如果 GetAsyncKeyState(Convert.ToInt32(Keys.W)) 那么.... 如果 e.keycode = keys.B 那么....
'keyUp' 事件捕获被按下或仅保持按下一次的键:
Sub Control_KeyUp(sender As Object, e As KeyEventArgs) Handles Control.KeyUp
MsgBox("Pressed key: " & e.KeyCode.ToString())
End Sub
编辑:删除了私有访问,因此可以从另一个 class.
调用它