我有这样一段代码:
Image myImage = new Image(new Texture("data/file.png"));
如何获取屏幕上myImage
的位置?我尝试使用myImage.getX()
和myImage.getImageX()
,但两者都返回0.0。出了什么问题?
我相信Actor
中的getX()
和getY()
是相对于其父容器的,因此您需要将坐标转换为“stage”坐标,然后再从那里转换为“screen”坐标。(我认为有更简单的方法来做到这一点,因此可能会有更好的答案)。
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);
Actor
有localToScreenCoordinates
方法,可以一次性获取所需内容:Vector2 screenPosition = myImage.localToScreenCoordinates(new Vector2(0f, 0f))