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

时间:2013-02-24 13:34:01

标签: java libgdx

我有这段代码:

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

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

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

猜一猜! - 移动图像&检查位置但是getX()返回0.0可能是因为它的移动相机&产生运动效果,图像可能根本无法移动。在最初的0.0位置(我认为这可能是你缺少的东西)