2014-08-31 2 views
0

클릭시 스프라이트를 마우스 위치로 이동하려고합니다.마우스 좌표를 사용하는 스프라이트 위치 지정

그러나, 좌표가 나는 Gdx.input.getX()Gdx.input.getY()에서 얻고 것은 왼쪽 상단 모서리을 기준으로하고, SpritesetPosition() 방법은 왼쪽 하단를 기준으로합니다.

왜 그런가요? 마우스를 클릭 한 곳에서 스프라이트를 배치하려면 어떻게해야합니까?

답변

2

화면 좌표는 Android에서 왔으며 Y- 기준 프레임을 사용합니다. libgdx의 카메라는 기본적으로 Y- 업 참조 프레임을 사용합니다 (관례에 따라 OpenGL은 Y- 업 참조 프레임을 사용하므로).

Y- 참조 프레임을 선호하는 경우 camera.setToOrtho(true); 방법을 사용하여 거꾸로 뒤집을 수 있습니다. 플래시 배경에서 오는 경우이 방법을 선호 할 수 있습니다.

일반적으로 화면 좌표를 터치에서 카메라 좌표계로 변환하는 안전한 방법은 다음을 수행하는 것입니다. 이것은 당신이 어떤 플랫폼을 사용하고 있고 카메라를 위해 선택한 좌표계와 상관없이 작동합니다. 예를 들어, 일부 게임 유형의 경우 화면 해상도와 일치하는 카메라를 사용하지 않고 화면 좌표를 카메라 좌표로 변환해야합니다. 또한 전 세계를 이동하는 카메라가 있으면 터치 포인트가 자동으로 세계 좌표로 변경됩니다.

tempVector3.set(Gdx.input.getX(), Gdx.input.getY(), 0); 
camera.unproject(tempVector3); 
//now tempVector3 contains the touch point in camera coordinates. 

이것은 3D 카메라에도 적용되기 때문에 Vector3를 사용합니다.