如何在libgdx scene2d上拖放演员?

2022-09-03 12:43:13

我正在使用libGDX开发一款游戏,我想知道如何拖放Actor。我已经制作了我的舞台并画了演员,但我不知道如何触发那个事件。

请尝试帮助我使用自己的体系结构。

public class MyGame implements ApplicationListener 
{
    Stage stage;
    Texture texture;
    Image actor;

    @Override
    public void create() 
    {       
        texture = new Texture(Gdx.files.internal("actor.png"));
        Gdx.input.setInputProcessor(stage);
        stage = new Stage(512f,512f,true);

        actor = new Image(texture);
        stage.addActor(actor);
    }

    @Override
    public void render() 
    {       
        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
        stage.draw();
    }
}

答案 1

如果你不想使用类,你可以使用这个:DragAndDrop

actor.addListener(new DragListener() {
    public void drag(InputEvent event, float x, float y, int pointer) {
        actor.moveBy(x - actor.getWidth() / 2, y - actor.getHeight() / 2);
    }
});

编辑:方法代替dragtouchDragged


答案 2

看看 libgdx 示例中的示例。以下是来自 libgdx 测试类的拖放测试:DragAndDropTest

如果您只想拖动/滑动Actor,则需要向其添加一个手势管理器,并将舞台传递到输入处理器,如下所示:。这是来自libgdx的GestureDetectorTest。对于拖动事件,它是 Flinglistener。Gdx.input.setInputProcessor(stage);


推荐