2013-02-24 81 views
3

图像(或演员)的屏幕位置我有这样一段代码:获取Libgdx阶段

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

如何让一个屏幕上myImage位置?我试过myImage.getX()myImage.getImageX()都总是返回0.0。怎么了?

+1

getX()应该做的工作..你试图移动它并检查? – idanakav 2013-02-24 15:00:05

回答

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); 
+0

有必要创建零坐标的Vector2(Vector2 coords = new Vector2(0,0);) – 2016-12-09 12:16:29

1

只是一个猜测! - 移动图像&检查位置,但getX()返回0.0可能是因为它的移动&产生运动效果的摄像头,图像可能根本没有被移动在0.0的初始位置的tsayed(我想这可能是你缺少的东西)