我正在用PyGame写一个简单的自上而下游戏。玩家仅在4个方向上移动,但角色平稳地旋转到玩家的移动方向。 这就是问题所在:如何确定角色旋转到哪个方向(顺时针或逆时针)以面向与玩家相同的墙?因为当角色从0°旋转到270°CLOCKWISE时,它看起来很滑稽。 我需要一个获取当前角色方向的函数,玩家的方向(我们的目标),顺时针输出1,逆时针输出-1,如果已经相同则输出0。
编辑:这是我达到预期效果的肮脏方式,然而我还在等待更干净的数学方法。这个不满足我。
def angle_clockwise(a,b):
if a!=b:
c=abs(b-a)
d=min(c,360-c)
if d==b-a: k = 1
else:
if -1*(b-a)==360-d: k = 1
else: k = -1
else: k=0
return k