私はlibgdxを初めて使用しています。ユーザー入力を取得するか、InputProcessorを使用する必要があるかどうかは、render()メソッドを使用する必要があります。render()またはlibgdxのInputProcessorでユーザー入力を検出します。
1
A
答えて
0
ユーザ入力の場合はInputProcessorを使用してください。
あなたは匿名で、あなたが書くべきショー方法で書きたい場合
: -Gdx.input.setInputProcessor(new InputProcessor() {
@Override
public boolean touchUp(int arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean touchDragged(int arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean touchDown(int arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean scrolled(int arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean mouseMoved(int arg0, int arg1) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean keyUp(int arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean keyTyped(char arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean keyDown(int arg0) {
// TODO Auto-generated method stub
return false;
}
});
か、入力プロセッサを実装し、setInputProcessorでインスタンスを登録することができます。 例: - あなたが書くべきあなたの画面クラスのshowメソッドで
public class InputTest implements InputProcessor {
@Override
public boolean keyDown(int arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean keyTyped(char arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean keyUp(int arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean mouseMoved(int arg0, int arg1) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean scrolled(int arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean touchDown(int arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean touchDragged(int arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean touchUp(int arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
return false;
}
}
: - 私の提案で
public void show() {
Gdx.input.setInputProcessor(new InputTest());
}
これら二つは、あなたの場合は、ユーザー入力を取得するための最良の方法ですステージを使用していません。 これがうまくいくと思います。
0
これはユースケースによって異なります。なぜあなたはそれを必要としますか?それは完了する必要がありますかevent drivenまたはcontinuous?例えば
、あなたが特定のキーが押されながら画面上のスプライトを移動したい場合は、その後、それは継続的なアクションです:あなたはたとえば、色を変更したい場合は
@Override public void render() {
if (Gdx.input.isKeyPressed(Input.Keys.SPACE))
sprite.translateX(speed * Gdx.graphics.getDeltaTime());
...
}
が、しかし、ユーザーが特定のキーを押したときには、そのイベントだ:ポーリングイベントの上に構築された便利な方法であることを
@Override public void create() {
Gdx.input.setInputProcessor(new InputAdapter() {
@Override public boolean keyUp (int keycode) {
if (keycode == Input.Keys.SPACE)
sprite.setColor(Color.RED);
}
});
...
}
注意、それは自分自身と非常に簡単です。以下のようなので:
private boolean moving;
@Override public void create() {
Gdx.input.setInputProcessor(new InputAdapter() {
@Override public boolean keyDown (int keycode) {
if (keycode == Input.Keys.SPACE)
moving = true;
}
@Override public boolean keyUp (int keycode) {
if (keycode == Input.Keys.SPACE)
moving = false;
}
});
...
}
@Override public void render() {
if (moving)
sprite.translateX(speed * Gdx.graphics.getDeltaTime());
...
}
これは、多くの場合、あなたがよりきれいに書いて、そのような特定のコード、ケースを使用することができます。このことを念頭に
private float speed;
@Override public void create() {
Gdx.input.setInputProcessor(new InputAdapter() {
@Override public boolean keyDown (int keycode) {
switch (keycode) {
case Input.Keys.LEFT: speed -= 10f; break;
case Input.Keys.RIGHT: speed += 10f; break;
}
}
@Override public boolean keyUp (int keycode) {
switch (keycode) {
case Input.Keys.LEFT: speed += 10f; break;
case Input.Keys.RIGHT: speed -= 10f; break;
}
}
});
...
}
@Override public void render() {
sprite.translateX(speed * Gdx.graphics.getDeltaTime());
...
}
を、多くの場合、イベントを使用するために改善することができます入力操作を扱う。しかし、多くのboolean
フラグを使用している場合は、組み込みの入力ポーリングを使用することもできます。
関連する問題
- 1. Java - Libgdx:テキストフィールドでユーザーの入力を確認しますか?
- 2. アンドロイド:私は私のAndroidアプリで「ユーザーの非アクティブ」を検出したいユーザーの非アクティブ/検出(softkeyboard)キーボード入力
- 3. シェルスクリプトのプロンプトに入力を検出して入力します
- 4. libGDX何がInputListener、InputProcessor、InputAdapterの違いですか?
- 5. ユーザーを検出する方法は、入力方法で中途半端に入力していますか?
- 6. Railsはユーザー入力とタグを同時に出力します
- 7. 出力ボックスにユーザー入力を文字列形式で出力します
- 8. Libgdx InputProcessor - あなたがkeyDownからスワップしたかどうかを判断します。
- 9. awkまたはvariableの検索パターン内のユーザー入力
- 10. CSVの単語がユーザ入力で検出されました
- 11. Select2 Searchユーザーが入力しているかどうかを検出します
- 12. javaでユーザー入力を検証していますか?
- 13. LibGDX Ashley Separate Render and Update
- 14. PyAudioで入力デバイスが検出されませんでした
- 15. ユーザー入力を伴うループの場合。出力はスペースで始まります
- 16. ユーザーの入力日を検証しテストする場所コントローラまたはモデル内
- 17. ユーザーの入力を検証し、正しいまでループします。
- 18. ユーザー入力またはイベントプロシージャーと呼び出されたプロシージャー(VBA)
- 19. LibGDXのmesh.getVerticiesは何を出力しますか?
- 20. UNIXコマンド(grep、sedまたはawk):入力として出力し、ファイルを検索
- 21. ユーザー入力まで素数を出力するJavaプログラム
- 22. ユーザーが入力フィールドでEnterキーを押したときの検出方法
- 23. VB6入力ボックスでキャンセルが検出されました
- 24. jQueryは入力の変更を検出します
- 25. テレグラムのボット - ユーザーが入力を開始したことをどのように検出できますか?
- 26. 日付(mm/dd/yyyy)を入力し、入力したデータを検証するユーザー
- 27. UITextViewでユーザー入力を検出する(委任以外に)
- 28. ユーザーがクリックした入力要素の場所を検出する方法
- 29. ユーザーが入力した値を検証する方法は?
- 30. Javascript - ユーザーがVRモードで入力したときの検出方法
までです。 InputProfessorは一般的に私の経験ではより単純なコードにつながります。 – Tenfour04