众所周知,默认的旋转动作围绕节点的中心点旋转,但如何使其围绕指定或特定点旋转?
答案 0 :(得分:0)
我不喜欢使用动作,我在游戏中使一切都成为内部时间的函数,它使一切都保持一致,对于更复杂的游戏来说,这是至关重要的。
这是来自我所做的基于太空的游戏,其中行星围绕一个点旋转。
<强>解释强>
时间:一个表示时间的整数(在我的大多数游戏中,这相当于帧,因为我总是使用固定的时间步长模型)
self.position = CGPointMake(cos(方向*(((浮动)时间* _model.orbitSpeed)+ _ model.initialAngleRadians))* _ model.orbitDistance,sin(方向*(((float)time * _model.orbitSpeed) + _model.initialAngleRadians))* _ model.orbitDistance);
显然,您需要使用当前时间框架更新所有移动对象,我在更新方法中执行此操作。这很简单。
你可以把它归结为:self.position = CGPointMake(cos((浮动)时间)* distanceFromCenter,sin((浮动)时间)* distanceFromCenter);