问题
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.
回答1:
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.
来源:https://stackoverflow.com/questions/23699481/how-to-get-the-world-coordinates-of-a-point-in-a-child-actor