如何在libgdx scene2d上拖放actor?

Jua*_*ell 12 java android libgdx

我正在使用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();
    }
}
Run Code Online (Sandbox Code Playgroud)

Ben*_*nnX 11

看一下libgdx示例中的Example.以下是libgdx测试类的拖放测试:DragAndDropTest

如果你只想拖动/滑动你的Actor你需要添加一个GestureListener并将你的舞台传递给Inputprocessor,如下所示:Gdx.input.setInputProcessor(stage);.这是libgdx的GestureDetectorTest.对于拖动事件,它是Flinglistener.


小智 10

如果您不想使用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);
    }
});
Run Code Online (Sandbox Code Playgroud)

编辑:方法drag而不是touchDragged