2017-08-19 8 views
2

私はlibGDXのタッチ操作について少し混乱しています。私は3つのタイプすべての使用法を見てきました。libGDX何がInputListener、InputProcessor、InputAdapterの違いですか?

InputProcessor:ここ http://www.gamefromscratch.com/post/2013/10/24/LibGDX-Tutorial-5-Handling-Input-Touch-and-gestures.aspx

public class InputDemo2 implements ApplicationListener, InputProcessor { 
    @Override 
    public void create() {   
     Gdx.input.setInputProcessor(this); 
    } 


    @Override 
    public boolean touchDown(int screenX, int screenY, int pointer, int button) { 
    } 
} 

InputListener:ここ http://www.gamefromscratch.com/post/2013/11/27/LibGDX-Tutorial-9-Scene2D-Part-1.aspx

public MyActor(){ 
     setBounds(actorX,actorY,texture.getWidth(),texture.getHeight()); 
     addListener(new InputListener(){ 
      public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { 
       ((MyActor)event.getTarget()).started = true; 
       return true; 
      } 
     }); 
    } 

InputAdapterLibGdx, How to handle touch event?

public class Prac1 extends ApplicationAdapter { 
    @Override 
    public void create() { 
     Gdx.input.setInputProcessor(new InputAdapter(){ 
      @Override 
      public boolean touchDown(int screenX, int screenY, int pointer, int button) { 
       return true; 
      } 

     }); 
    } 

} 

私は別のものを見つけることはできません。どちらを使うべきですか?おかげ

答えて

0

InputListener

InputListenerはInputEventsを受信して​​処理するために提供される低レベルの入力イベントのEventListenerあります。

EventListenerは、イベントについて通知されるアクターに追加されるhandle(Event)メソッドのインターフェースです。 EventListenerインターフェイスを実装するクラスでは、instanceofを使用してイベントを処理する必要があるかどうかを判断します。

入力イベントの受信を開始するには、俳優がInputListenerを追加するだけで済みます。


InputProcessor

InputProcessorは、キーボードとタッチスクリーン(デスクトップ上のマウス)からの入力イベントを受信するために使用されます。このためには、Input.setInputProcessor(InputProcessor)メソッドで登録する必要があります。これはApplicationListener.render()の呼び出しの前に各フレームと呼ばれます。

InputAdapter

InputAdapterはInputProcessorのためだけのアダプタクラスです。興味のあるメソッドだけをオーバーライドする場合は、このクラスを使用します。

関連する問題