我想更改图像的中心点,位置(在世界中)工作正常,但不是中心点(在精灵中),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);
答案 0 :(得分:1)
使用setOrigin
设置origin
的{{1}},Sprite
负责rotation
和scaling
。但它不会影响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(宽度,高度)是右上角。