相机旋转后,坐标让我感到困惑。
我有一台相机、一个角色和一张地图。
该玩家仅沿以下方向行走:北(90°)、南(270°)、东(0°)、西(180°)。
从玩家“camera.rotateAround (..., ..., ...)”的位置旋转相机后,玩家由于旋转而开始向新方向移动。
有没有办法在不将地图移动到原始位置的情况下将原始位置重新定位回坐标?
我很感激你的帮助。
首先你需要存储地图的旋转角度。
那么当玩家移动时你需要考虑地图的旋转角度。
camera.rotatearound(...)//I guess you rotating +90 or -90 in this game
maprotation+=... //+90 or -90 depends on side you turn.
//i ll assume rotation direction is counter clock wise.
现在您已经了解了旋转,因此您可以使用三角学来设置玩家的移动。
在player.moveup(浮动地图旋转)方法中或在您编写向北移动的代码的任何地方。
x+=MathUtils.cosDeg(90-maprotation)*speed;//90 degree for moving up
y+=MathUtils.sinDeg(90-maprotation)*speed;// - maprotation for correction
正如您所看到的,当相机旋转时方向也会旋转。所以你只需要减去地图旋转即可纠正。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)