在我的OpenGL程序的while循环中,我有类似的东西:
if (Keyboard.isKeyDown(Keyboard.KEY_W)) {
...
}
现在当然按下按钮会多次检查这个
有没有办法让它每按一次只检测一次按钮?
例如,像Java Swing中的KeyListener一样。
我已经用elapsedTime
变量处理移动速度,也许我也可以用它来解决这个问题?
答案 0 :(得分:1)
跟踪它第一次出现的时间以及何时重新出现,理想情况下,此布尔值未在方法的本地范围内定义,该方法每秒调用60次,但范围更高。
if (wKeyUp && Keyboard.isKeyDown(Keyboard.KEY_W)) {
wKeyUp = false;
onNewWKeyPress();
}
else if (wKeyUp == false)
{
wKeyUp = true;
}
答案 1 :(得分:0)
按照MadProgrammers的指示评论我的问题,我得到了这个工作:
if (Keyboard.isKeyDown(Keyboard.KEY_W)) {
if(wKeyUp==true) {
wKeyUp = false;
executeCode();
}
} else if (wKeyUp == false && !Keyboard.isKeyDown(Keyboard.KEY_W))
wKeyUp = true;