用户控制在球体表面上移动的蛇。我将相机和蛇的头部连接到一个与可见球体大小相同的假想球体上:
headNode.addChildNode(cameraNode)
controlNode.addChildNode(headNode)
scene.rootNode.addChildNode(controlNode)
用户点击两个按钮来左右旋转蛇。我使用一些基本的三角函数将这个“2D”旋转转换为它的组件,我用它来旋转每帧的 controlNode:
velocity.x = cos(rotation)
velocity.y = sin(rotation)
controlNode.eulerAngles.x += velocity.x
controlNode.eulerAngles.y += velocity.y
当在球体的大部分上移动时,这非常顺利,但在球体的两个极点(沿 y 轴),蛇的行为很奇怪。这是一个 gif,显示了球体大部分的正常运动,然后是两极的奇怪运动:
它移动的方式就像它从杆子上反弹一样,我一辈子都无法解决它。如果有人建议以更简单的方法完成任务,将不胜感激!