我似乎无法正确理解Libgdx的scene2d中的演员原点。
我的理解如下:
如果我将一个actor的X设置为0,它的左边缘将在corrdination 0处呈现。现在,如果我将其原点X设置为5,则该actor的第五个像素将处于corrdination 0,换句话说,演员的左边缘将是-5。
我的经验表明其他方式。如果我将原点设置为5,那么左边缘将以某种方式呈现在协调5上。
有人可以帮我理解这个问题。
答案 0 :(得分:3)
origin
仅用于缩放和旋转
这意味着,如果原点是P(0,0)(默认值),则Actor
将在其左下角旋转并缩放。
如果您将它的原点设置为中心(P(宽度/ 2,高度/ 2)),他将旋转并围绕其中心进行缩放。
相反,位置始终相对于左下角,并且不受原点的影响
如果要设置Actor
相对于其原点的位置,则需要将原点用作偏移量:
actor.setX(newPosX - actor.getOriginX());
actor.setY(newPosY - actor.setOriginY());
另外请记住,将x-origin设置为5,就像在您的示例中一样,不需要将Actor
s原点设置为第5个像素,而是将其设置为第5个像素。
如果您使用Viewport
,则无需以像素为单位进行计算,这非常重要,因为您可以支持不同的分辨率和宽高比。