1
私はlibgdxを使用している種類のトレーナーを開発しようとしており、この種の問題に固執しています。私は、キーのユーザーが何かを押して、それを表示する(文字の場合)か、入力をクリアする(スペースキーの場合)かを検出する方法が必要です。私はこの解決策を思いついた:どのように押されたキー値を取得する
StringBuilder typeArea = new StringBuilder();
if (Gdx.input.isKeyJustPressed(Input.Keys.A)) {
typeArea.append(Input.Keys.toString(Input.Keys.A));
} else if (Gdx.input.isKeyJustPressed(Input.Keys.B)) {
typeArea.append(Input.Keys.toString(Input.Keys.B));
} else if ... {
...
} else if (Gdx.input.isKeyJustPressed(Input.Keys.SPACE)) {
typeArea.setLength(0);
}
よりエレガントな方法があるように感じる。私は次のようなものを探しています:
String letters = "abcdefg...";
StringBuilder typeArea = new StringBuilder();
if (Gdx.input.isKeyJustPressed(Input.Keys.ANY_KEY)) {
if (letters.indexOf(getKeyPressedValue()) >= 0) {
typeArea.append(getPressedKeyValue());
} else if (getKeyPressedValue() == Input.Keys.SPACE) {
typeArea.setLength(0);
}
}
また、もっと簡単な方法があります。助言がありますか?
を上書き私の問題を解決するために私は 'Screen'に' Stage'を追加し、何らかの 'Actor'を追加し、このリスナーをそれに付ける必要がありますか? –
通常のInputProcessorを使用し、直接実装できるKeyDownイベントを使用することができます。私はこれを私の答えに加えます。 – dfour