addAction 总是将 actor 原点旋转 0,0,为什么?

addAction always rotates the actor origin 0,0, why?

我的代码(libgdx):

@Override
public void create () {
    stage = new Stage();
    Gdx.input.setInputProcessor(stage);

    texture = new Texture(Gdx.files.internal("image.png"));
    TextureRegion region = new TextureRegion(texture,256,128);

    Image actor = new Image(region);
    actor.setPosition(Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2);
    actor.setOrigin(actor.getWidth()/2, actor.getHeight()/2);

    group = new Group();
    group.addActor(actor);
    stage.addActor(group);

}

@Override
public void render () {
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    stage.act(Gdx.graphics.getDeltaTime());
    stage.draw();


    if(Gdx.input.isButtonPressed(Input.Buttons.LEFT)){
        if(Gdx.input.getX() < Gdx.graphics.getWidth() / 2)
        {
            group.addAction(parallel(rotateBy(1,1)));
        }
        else
        {
            group.addAction(parallel(rotateBy(-1,1)));
        }
    }
}

你好,我使用 LibGdx,我的问题是我想在同一个对象上旋转,但是当我开始旋转时,我在左下角的点 0.0 处转了一圈。

我不明白为什么... 有人可以解释该怎么做吗?

谢谢

你轮换的是小组而不是演员 所以试试这个 将组的原点设置为 group.setOrigin(group.getWidth()/2, group.getHeight()/2);

组的 9 月来源不是您将组添加到此案例的演员:

    group.addActor(actor);

    group.setPosition(Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2);
    group.setOrigin(group.getWidth()/2, group.getHeight()/2);

    stage.addActor(group);

其次,API正在使用?或者是您创建的方法,parallel 或 rotateBy,无论如何您都可以使用这个 haver 为您假装。

group.addAction(Actions.parallel(Actions.rotateBy(1,1)));

P.S:如果有效,Kareem Hammad 的回复是我的第一个答案,哈哈,但已经发表了。