3

我有这段代码:

Image myImage = new Image(new Texture("data/file.png"));

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

4

2 回答 2

9

我相信getX()and getY()on anActor是相对于它们的父容器的,因此您需要将坐标转换为“舞台”坐标,然后从那里转换为“屏幕”坐标。(我认为有一种更简单的方法可以做到这一点,因此可能会有更好的答案)。

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);
于 2013-02-24T20:53:44.787 回答
1

只是猜测!!!- 移动图像并检查位置但 getX() 返回 0.0 可能是因为它的相机移动并产生了移动效果,图像可能根本没有移动并在 0.0 的初始位置被移动(我认为这可能是你错过的东西)

于 2013-06-19T11:05:13.080 回答