0

Libgdx Scene2dui ライブラリを使用しようとしていて、マウスのタッチダウン イベントをキャッチしたいと考えています。カスタム アクターと、アクターのインスタンスをインスタンス化し、タッチ イベントをリッスンしようとするダイアログがあります。何らかの理由で、タッチ イベントがキャッチされません。

public class MMADialog136WhiteCanvasActor extends Actor {

    public MMADialog136WhiteCanvasActor () {
        super();
        setWidth(256);
        setHeight(256);
        setBounds(0, 0, getWidth(), getHeight());
        mMyRenderer = new ImmediateModeRenderer10();
    }

   @Override
    public Actor hit(float arg0, float arg1, boolean flag) {
        return null;
        }

    @Override
    public void draw(SpriteBatch batch, float arg1) {
         batch.end();
        Vector3 pos0 = new Vector3(1,1,0);
        Vector3 pos1 = new Vector3(100,100,0);
        mMyRenderer.begin(GL10.GL_LINES);        
        mMyRenderer.color(mColor.r,mColor.g,mColor.b,mColor.a);
        mMyRenderer.vertex(pos0);
        mMyRenderer.vertex(pos1);                                       
        mMyRenderer.end();
         batch.begin();
    }
    private ImmediateModeRenderer10 mMyRenderer;
    private Color mColor = MMAColor.MMAWHITE;
}

そして Actor インスタンスのリスナー...

mWhiteCanvas.addListener(new InputListener() {
    public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
        System.out.println("x,y" + x + "," + y);
        return true;
    }
});

InputListener がイベントをキャッチしない理由は何ですか?

最初に考えたのは、Actor の描画スペースには境界が必要だということでした。そのため、定義済みの幅 = 256 と高さ = 256 に基づいて setBounds() を追加しましたが、これは効果がありません。

4

1 に答える 1