在Libgdx Stage中获取Image(或actor)的屏幕位置

Alf*_*Alf 3 java libgdx

我有这段代码:

Image myImage = new Image(new Texture("data/file.png"));
Run Code Online (Sandbox Code Playgroud)

如何myImage在屏幕上获得位置?我试过myImage.getX(),myImage.getImageX()两者总是返回0.0.怎么了?

P.T*_*.T. 7

我相信,getX()getY()上一个Actor是相对于他们的父容器,所以你需要将坐标转换为"舞台"坐标,然后从那里到"屏幕"坐标.(我认为有一种更简单的方法可以做到这一点,因此可能有更好的答案).

Image myImage = ...;
Vector2 coords = new Vector2(myImage.getX(), myImage.getY());
myImage.localToStageCoordinates(/*in/out*/coords);
myImage.getStage().stageToScreenCoordinates(/*in/out*/coords);

System.out.println("Image X " +myImage.get()+ " maps to screen " +coords.x);
Run Code Online (Sandbox Code Playgroud)