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 的回复是我的第一个答案,哈哈,但已经发表了。
我的代码(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 的回复是我的第一个答案,哈哈,但已经发表了。