2012-11-28 103 views
0

我正在做我自己的輸入窗口,用戶需要在此輸入內容。但是當我輸入任何字母時,我會得到不止一個字母。我認爲這取決於CPU,我當前的繞行是每當我鍵入時睡眠線程100 ms。有沒有其他的方式來做到這一點,只有一封信?Java Slick:鍵盤輸入

這是我的代碼

if (input.isKeyDown(Input.KEY_0)) { 
     IPInput += "0"; 
     try { 
      Thread.sleep(100); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
    } 
+2

我相信你可以用isKeyPressed來代替嗎? – Max

+0

我剛剛檢查,它的工作原理。非常感謝! – ashur

回答

1

基於關我的評論....

您可以用在isKeyPressed()isKeyDown()

按鍵響應 - 觸發當用戶按下按鍵(按鍵)

0

您可以隨時使用鍵盤 - 當用戶按下一個鍵並釋放它(關鍵下來,然後鍵上)

的KeyDown引發聽衆,他們可以更好地控制您使用鍵盤的功能。

在你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是當鑰匙被持續按住,而不是其他,當按鍵被釋放反應。