Python 如何根据另一个对象所在的位置使某个对象旋转

Python 如何根据另一个对象所在的位置使某个对象旋转,python,pygame,Python,Pygame,我正在制作一个滚动背景类型的游戏,有点像马里奥。我有一个角色在地面上行走,可以向左或向右,我想介绍一个悬浮在天空中的飞行眼球,它跟随角色的运动。我有一个眼球png(来自Terria的chuthulhu的眼睛)。我想要它做的就是根据角色所在的位置旋转,并且看起来像是盯着它看(下一步是让它向角色发射激光)。我该怎么做?提前感谢。您可以使用pygame.transform.rotate()或pygame.transform.rotozoom()预先创建眼球的旋转版本 听起来,当玩家改变行走方向时,眼球

我正在制作一个滚动背景类型的游戏,有点像马里奥。我有一个角色在地面上行走,可以向左或向右,我想介绍一个悬浮在天空中的飞行眼球,它跟随角色的运动。我有一个眼球png(来自Terria的chuthulhu的眼睛)。我想要它做的就是根据角色所在的位置旋转,并且看起来像是盯着它看(下一步是让它向角色发射激光)。我该怎么做?提前感谢。

您可以使用
pygame.transform.rotate()
pygame.transform.rotozoom()
预先创建眼球的旋转版本

听起来,当玩家改变行走方向时,眼球会越过玩家的头顶(因为它总是跟随)。因此,简单地比较球员和眼球之间侧面位置的差异就足以确定要选择哪种预旋转的眼球图像

如果眼球的X坐标距离玩家很远,那么需要一个小角度。当玩家越来越接近将眼球放在他们上方时,角度应该改变到眼睛正向下看的位置。这对应于眼球-X和玩家-X之间的差异很小(趋于零)


也许在X-difference和sprite图像之间建立一个简单的映射表就足够了。

我理解你所说的基于两个sprite之间距离的角度变化的大部分含义,但我不太理解如何基于这个距离来改变角度。眼睛在向角色射击时飞过角色。