0

私は独自の入力ウィンドウを滑らかにしています。ユーザーはこれに何かを入力する必要があります。しかし、文字を入力すると、複数の文字が表示されます。CPU に依存していると思います。現在のバイパスは、入力するたびにスレッドを 100 ミリ秒スリープさせることです。これを行い、1文字だけを取得する他の方法はありますか?

これは私のコードです

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

2 に答える 2

1

私のコメントに基づいて....

の代わりisKeyPressed()に使用できisKeyDown()ます。

KeyPress-ユーザーがキーを押して離したときにトリガーされます(キーを押してからキーを押します)

KeyDown-ユーザーがキーを押したときにトリガーされます(キーダウン)

于 2012-11-28T18:49:10.600 に答える
0

キーボードの使用目的をより適切に制御できるキーボードリスナーをいつでも使用できます。

BasicGameStates の 1 つで、以下を使用できます。

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 応答は、キーが離されたときに反応する他の応答ではなく、キーが押されたときです。

于 2013-12-28T20:27:14.547 に答える