2013-02-24 5 views
3

У меня есть этот кусок кода:Получить позицию экрана изображения (или актера) в Libgdx Stage

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

Как получить myImage положение на экране? Я пробовал myImage.getX() и myImage.getImageX() оба всегда возвращают 0.0. Что не так?

+1

getX() должен выполнить эту работу .. Вы пытались переместить его и проверить? – idanakav

ответ

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);) –

1

Просто догадаться !!! - Перемещение изображения & проверка позиции, но getX() возвращение 0.0 может быть связано с тем, что камера, которая перемещается &, производит эффект движения, изображение может быть перемещено на всех &, выполненное в исходном положении 0.0 (я думаю, это может быть вещь, которую вам не хватает)

Смежные вопросы