Java Slick:键盘输入

时间:2012-11-28 18:39:42

标签: java slick2d

我正在使用光滑的自己的输入窗口,用户需要输入内容。但是当我输入任何一封信时,我会得到不止一封信。我假设它取决于CPU,我当前的旁路是每当我输入时睡眠线程100毫秒。有没有其他方法可以做到这一点,只有一个字母?

这是我的代码

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

2 个答案:

答案 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时响应的响应。