我在Android上使用libGDX。我设置了舞台,并添加了带有自定义绘制的CustomActor。工作正常。但是,我无法通过此参与者的InputListener获得touchDragged方法的任何日志。即使其中的代码也无法运行。

这是所需的代码公开范围:

public class CustomActor extends Actor {
    public CustomActor() {
        this.setListener(new InputListener() {
            @Override
            public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
                return true;
            }
            @Override
            public void touchDragged(InputEvent event, float x, float y, int pointer) {
                //This log doesn't print up!
                Gdx.app.log("CustomActor","touchDragged");
                //This code doesn't work either
                Vector2 v = CustomActor.this.localToParentCoordinates(new Vector2(x,y));
                CustomActor.this.setPosition(v.x, v.y);
            }
        });
    }
}


谁能帮我解决我所想念的问题?

最佳答案

添加您用作StageInputProcessor来接收事件,否则Stage无法将事件转发给参与者。

Gdx.input.setInputProcessor(stage);


应该做。

08-04 06:04