我正在使用光滑的自己的输入窗口,用户需要输入内容。但是当我输入任何一封信时,我会得到不止一封信。我假设它取决于CPU,我当前的旁路是每当我输入时睡眠线程100毫秒。有没有其他方法可以做到这一点,只有一个字母?
这是我的代码
if (input.isKeyDown(Input.KEY_0)) {
IPInput += "0";
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
答案 0 :(得分:1)
基于我的评论......
您可以将isKeyPressed()
替换为isKeyDown()
。
KeyPress - 当用户按下某个键并将其释放(按键然后按键)时触发
KeyDown - 用户按下键(按键)时触发
答案 1 :(得分:0)
您可以随时使用键盘监听器,它可以更好地控制您使用键盘的内容。
在您的一个BasicGameStates中,您可以使用:
public class Game extends BasicGameState{
public String answer = "";
public void keyPressed(int key, char c) {
if (key == Input.KEY_0) {
answer += "0";
}
super.keyPressed(key, c);
}
public void keyReleased(int key, char c) {
if (key == Input.KEY_0) {
answer += "0";
}
super.keyReleased(key, c);
}
}
keyPressed响应是当密钥获得PRESSED而不是另一个密钥获得RELEASED时响应的响应。