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

时间:2015-01-20 11:20:24

标签: java android libgdx game-physics

我的代码(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点。

enter image description here

我无法理解为什么...... 有人可以解释怎么做?

谢谢

2 个答案:

答案 0 :(得分:2)

你正在旋转小组而不是演员 试试吧 将组的原点设置为 group.setOrigin(group.getWidth()/2, group.getHeight()/2);

答案 1 :(得分:1)

该组的九月原点而不是您将该组添加到此案例的演员:

    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的反应是我的第一个回答,哈哈,但已经发表了。