2014-09-19 2 views
-1

최근에 LibGDX에서 새 게임을 만들기 시작했는데 작은 문제가 발생했습니다. 플레이어를 마우스쪽으로 회전시키는 방법을 알아 냈지만, 항상 몇도 오프셋되었습니다. 문제는 오프셋 된 정도의 정확한 양을 알 수 없다는 것입니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까? 마우스 나 그와 비슷한 것을 변경하는 코드가 없습니다.LibGDX의 마우스 오프셋

+1

그럼 어떤 코드가 있습니까? 어떤 값과 좌표를 사용합니까? – evident

+0

https://gist.github.com/anonymous/7478ad97587e1ac64616 현재 변수 선언 및 기타 기타 사항을 제외하고는 대부분 내 코드입니다. – CivvyThePandaTM

답변

0

코드를 살펴보면 각도 계산에 오류가있는 것 같습니다. x 및 y 좌표를 전환 한 것처럼 보입니다. libgdx의 구현은 다음과 같습니다

public float angle() { 
    float angle = (float)Math.atan2(y, x) * MathUtils.radiansToDegrees; 
    if (angle < 0) angle += 360; 
    return angle; 
} 

는 편의를 위해, 당신은 쉽게 libgdx의 Vector2 클래스의 angle() 방법을 사용할 수 있습니다. 또한 https://github.com/libgdx/libgdx/blob/1ac475880a41168b815e53ebeeeb917a08c49a28/gdx/src/com/badlogic/gdx/math/Vector2.java

http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/math/Vector2.html#angle-com.badlogic.gdx.math.Vector2-

, 내가 카메라에 unproject() 방법을 사용하는 조언을 것입니다. 이렇게하면 화면 좌표 (픽셀)가 카메라에서 사용되는 좌표계로 변환됩니다. 이들은 반드시 다를 필요는 없지만있을 수 있습니다. 따라서 나중에 변경할 경우를 대비하여 구현하는 것이 항상 좋습니다.

이 두 가지를 변경하면 문제가 해결됩니다.

+0

슬프게도, 이것은 효과가없는 것처럼 보입니다. 나는 다시 확인했다. 그리고 그것은 (x, y)가 아니라 (y, x)이다. Camera.unproject를 사용하면 아무것도 변경되지 않았습니다. 그래도 고마워. – CivvyThePandaTM