[英]Java Slick: Keyboard Input
我正在使用光滑的輸入窗口,用戶需要在其中輸入一些內容。 但是,當我鍵入任何字母時,我得到的不止一個。 我認為這取決於CPU,我的當前繞過方法是每次鍵入時都會使線程休眠100 ms。 還有其他方法可以只收到一個字母嗎?
這是我的代碼
if (input.isKeyDown(Input.KEY_0)) {
IPInput += "0";
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
基於我的評論...
您可以用isKeyPressed()
代替isKeyDown()
。
KeyPress-當用戶按下某個鍵並釋放它時觸發(先按下然后再按下)
KeyDown-當用戶按下鍵(按下鍵)時觸發
您始終可以使用鍵盤監聽器,它們可以更好地控制您使用鍵盤的目的。
在您的BasicGameState之一中,您可以使用:
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響應是按鍵被按下時的響應,而不是按鍵釋放時做出反應的響應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.