(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.

调用它