2017-12-06 15 views
0

私はLibGDXを使用しています。LibGDX:画面に触れずにタッチスクリーンを実装する

私はジャンプしたくないと言ってみましょう - 実際には画面に触れていない、私はキーボードを使っていないと思います。 できますか?

ボタンを押すことなく(アプリケーション/ Android/ios /などのタッチスクリーンから)ボタンを「テスト」することができますか? InputListenerからボタンの

例:

final Image imageJumpButton = new Image(new Texture("jbjump.png")); 
imageJumpButton.addListener(new InputListener() { 

    @Override 
    public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { 
     JOYSTICK_UP= true; 
     return true; 
    } 


    @Override 
    public void touchUp(InputEvent event, float x, float y, int pointer, int button) { 
     JOYSTICK_UP = false; 
    } 
}); 

私はあなたに感謝します。

答えて

1

私の代わりにImageのボタンのButtonクラスを使用することをお勧めします。あなたはButtonと尋ねる何をするための便利な方法があります:

final Button imageJumpButton = new Button(new TextureRegionDrawable(new TextureRegion(new Texture("jbjump.png")))); 
//use ChangeListener instead of InputListener 
imageJumpButton.addListener(new ChangeListener() { 
     @Override 
     public void changed(ChangeEvent event, Actor actor) { 
      Gdx.app.log("", "Button is pressed"); 
     } 
    }); 

その後、プログラムのボタンを押すことができる:

//this will trigger changed() method of the ChangeListener 
imageJumpButton.toggle(); 

更新

をあなたが何かをしたい場合は、しばらくはボタンを押すと、render()メソッドでこれを呼び出します。

if (button.isPressed()) 
    //do something each frame, while button is pressed 
たとえば

、あなたはプレイヤーが、実行するためにボタンを押している間、それはこのようなものになるだろうしたい場合:

public void update(float deltaTime) { 
    if (button.isPressed()) 
     player.x += deltaTime * velocityX; 
} 

をところで、あなたがボタンにChangeListenerを追加する必要はありませんこの場合。

+0

このボタンは、次のような方法で使用する必要があります。保持している間は、何もしないでください。何もしないでください。例えば、実行のためのボタン。ありがとう。 – ROSA

+1

答えを更新しました – Arctic45

1

おそらく。私はこれが働いているかわからない。今はテストできません。 Actor fire(Event event)メソッドを使用できます。

imageJumpButton.fire(InputEvent.Type.touchDown); 

または

imageJumpButton.fire(InputEvent.Type.touchUp); 
関連する問題