LibGDX在已经旋转的actor上重置原点的麻烦

时间:2015-06-25 23:06:44

标签: rotation libgdx

如果我这样做:

actor.setOrigin(0, 0);
actor.setRotation(45);
actor.setOrigin(actor.getWidth() / 2, actor.getHeight() / 2);

似乎在最后一次setOrigin调用中,演员被重新定位到在设置了最新原点后调用actor.setRotation(45)时的位置。

我该怎么做才能使演员的最新起源仅用于未来的“规模”和“轮换”行动?

1 个答案:

答案 0 :(得分:1)

好的,所以我查看了libgdx的源代码,我会告诉你简短的答案。

基本上,当您设置原点或旋转时,您只需更改名为" originx"," originy"的变量。和"轮换"。因此,每次调用setOrigin都将覆盖先前调用中设置的值。

每次绘制actor时,都会使用当前变量重新计算边界。

要清楚,setOrigin看起来像这样:

public void setOrigin (float originX, float originY) {
    this.originX = originX;
    this.originY = originY;
}

所以先前的setOrigin丢失了。