使用setBounds调整Sprite大小后如何旋转Sprite? (LIBGDX)

时间:2018-12-10 12:46:24

标签: libgdx sprite

我已将一个特定大小(200)的位图(png)加载到我的Sprite中,并以100/100为中心进行旋转:

Sprite round = loadSprite(200,200);
round.setPosition(x,y)

旋转round.setRotation()时,精灵会围绕正确的中心旋转。

现在,我想将Sprite的大小调整为新的大小(400,400),并且仍然希望围绕“中心”旋转(200/200):

round.setBounds(x,y,400,400)
rount.setCenter(200,200);

再次旋转时,它仍然围绕旧的Center 100/100旋转。

如何做到这一点?

1 个答案:

答案 0 :(得分:1)

setCenter(x, y)设置Sprite的位置,使其居中于此位置:

/** Sets the position so that the sprite is centered on (x, y) */
public void setCenter(float x, float y){
    ...
}

您需要功能setOrigin(originX, originY)

/** Sets the origin in relation to the sprite's position for scaling and rotation. */
public void setOrigin (float originX, float originY) {
    ...
}