如何获得儿童演员中某个点的世界坐标?

问题描述:

我有Group个对象,这些对象由其他Group个对象组成,最后又由Actor个对象组成.现在,当组和角色旋转,偏移和缩放时,世界"中或相对于根节点的坐标将发生变化.如何获取演员局部空间中某个点的世界坐标?

I have Group objects that consist of other Group objects, that finally consist of Actor objects. Now, when the groups and actors are rotated, offset and scaled, the coordinates in the "world", or in relation to the root node change. How do I get the world coordinates of a point in an actor's local space?

为进一步说明,这是我想要的示例:

To illustrate a bit more, here's an example of what I want:

Group parentGroup;
Actor childInGroup;
...
parentGroup.addActor(childInGroup);
childInGroup.setPosition(10f, 15f);
childInGroup.setRotation(45f);

// Get the childInGroup's position in the world
float childWorldPosX = ...; // This is what I want to know
float childWorldPosY = ...; // ... and this.

您可以使用 Actor.localToStageCoordinates() 直接获取"stage-global"坐标.在这种情况下,libGDX将递归地应用localToParentCoordinates,直到它到达舞台的根元素为止.

You can either use Actor.localToParentCoordinates() if you want to go just one step higher in your hierarchy of Groups and Actors, or directly use Actor.localToStageCoordinates() to get the "stage-global" coordinates directly. In this case, libGDX will recursively apply the localToParentCoordinates until it hits the root element of your stage.