我正在用Java开发一个简单的游戏,并且正在使用键适配器进行键移动。它可以正常工作,但是当我切换方向时,播放器会向新方向移动一个像素,然后停下来一会儿再恢复正常(您知道,当您在键盘上按一个字母时,它会写一个字母,但是如果您握住它,片刻之后它就会开始流动。有没有什么办法解决这一问题?还是应该改用按键侦听器?

最佳答案

更好的方法是为每个方向设置一个布尔值,例如movingRight。最初movingRight = false。在keyPressed()中,检查是否按下了向右箭头(或D或其他键),如果已设置,请设置movingRight = true。在keyReleased()中,执行相同操作,但是如果释放了相关密钥,则将布尔值设置为false。然后在主更新循环中,如果movingRight == true,则将播放器向右移动一个像素,依此类推。

重申一下,这消除了较小的延迟,因为它不依赖于按键事件,而只是确保按键已被按下且尚未释放(因此我们知道它一直处于按住状态)。

10-08 01:52