【发布时间】:2014-03-03 04:34:44
【问题描述】:
我正在尝试想出一种方法来累积 SKNode 的旋转。例如,如果一个节点正在滚下一座小山(圆形物理体),我想知道它做了多少次旋转,或者一个累积的角度。我需要它在旋转一种方式时增加并减少另一种方式。
我曾想过跟踪节点的 zRotation 并在每次更新时更新计数,当它从 >0 传递到
任何建议都会很棒!
编辑:这是我的解决方案,它非常适合我的目的
-(void)update:(CFTimeInterval)currentTime {
//get CurrentAngle (-pi to pi)
float currentAngle = _wheelSprite.zRotation;
if (currentAngle<0) {
//change angle format (0 to M_PI*2)
currentAngle+=M_PI*2;
}
//calculate angle change
float change = currentAngle - _lastAngle;
if (change>M_PI) {
change-=2*M_PI;
}else if (change<-M_PI){
change+=2*M_PI;
}
//update last angle
_lastAngle = currentAngle;
//update actualWheelAngle
_actualWheelAngle += change;
}
【问题讨论】:
标签: objective-c sprite sprite-kit game-physics sknode