我最近开始在LibGDX中制作我的新游戏,但我遇到了一个小问题。我发现了如何让播放器朝着鼠标旋转,但它总是偏移几度。问题是我不知道它所抵消的确切度数。有谁知道如何解决这一问题?我没有任何代码可以改变鼠标或类似的东西。
答案 0 :(得分: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()
方法。
http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/math/Vector2.html#angle-com.badlogic.gdx.math.Vector2- https://github.com/libgdx/libgdx/blob/1ac475880a41168b815e53ebeeeb917a08c49a28/gdx/src/com/badlogic/gdx/math/Vector2.java
另外,我建议您在相机中使用unproject()
方法。这会将屏幕坐标(像素)转换为相机使用的坐标系。这些不一定需要不同,但可能是。因此,如果您以后更改任何内容,最好实施它。
改变这两件事可以解决你的问题。