Libgdx中的setCenter在nightlies包中不可用,并且setOrigin不能正常工作?

时间:2014-05-07 09:13:21

标签: java position libgdx sprite

我想更改图像的中心点,位置(在世界中)工作正常,但不是中心点(在精灵中),Sprite API的链接: http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/g2d/Sprite.html#setOriginCenter()

只有setOrigin在Sprite的方法中可用,并且用-100,-100或0,0更改它不会改变任何东西。有谁知道为什么?

sprite = new Sprite(tex);
sprite.setPosition(pos.x, pos.y);
sprite.setOrigin(-100,-100);//(sprite.getWidth()*0.5f, sprite.getHeight()*0.5f);//(0,0);
sprite.setSize(0.5f, 0.5f);

1 个答案:

答案 0 :(得分:1)

使用setOrigin设置origin的{​​{1}},Sprite负责rotationscaling。但它不会影响position 这意味着,如果您将origin设置为P(width/2,height/2)并旋转Sprite,它将围绕其中心旋转。如果您将origin设置为左下角P(0,0),它将围绕该角旋转 而position始终是左下角,并且不受origin的影响 如果您想以position为中心点,则需要重新计算左下角:

sprite.setPosition(posVector.x-sprite.getWidth()/2, posVector.y-sprite.getHeight()/2);

请注意,origin相对于Sprite s position。所以P(0,0)是左下角,P(宽度,高度)是右上角。