【发布时间】:2014-03-03 21:45:58
【问题描述】:
我们知道,默认的旋转动作是围绕节点的中心点旋转,但是如何让它围绕一个指定的或特定的点旋转呢?
【问题讨论】:
-
将你的节点添加到另一个 SKNode 的偏移处。更改父级的 zRotation。发生的情况是您的节点以给定的偏移量(定义旋转半径)围绕其父节点旋转。
-
非常感谢!我试试看。
标签: rotation sprite-kit
我们知道,默认的旋转动作是围绕节点的中心点旋转,但是如何让它围绕一个指定的或特定的点旋转呢?
【问题讨论】:
标签: rotation sprite-kit
我不喜欢使用动作,我在我的游戏中让一切都成为内部时间的函数,它使一切都保持一致,对于更复杂的游戏来说这是至关重要的。
这是我做的一个基于太空的游戏,行星围绕一个点旋转。
说明:
时间:表示时间的整数(在我的大多数游戏中,这相当于帧,因为我一直使用固定时间步长模型)
self.position = CGPointMake(cos(direction*((((float)time*_model.orbitSpeed)+_model.initialAngleRadians))*_model.orbitDistance, sin(direction*(((float)time*_model.orbitSpeed) +_model.initialAngleRadians))*_model.orbitDistance);
显然,您将需要使用当前时间更新所有移动对象,我在 update 方法中执行此操作。这是相当直截了当的。
你可以归结为:self.position = CGPointMake(cos((float)time)*distanceFromCenter,sin((float)time)*distanceFromCenter);
【讨论】: