簡體   English   中英

Java Slick:鍵盤輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM