我正在尝试使用SKAction.rotateToAngle旋转精灵。例如:
rotate = SKAction.rotateToAngle(desiredAngle, duration: 1.0)
sprite.runAction(rotate)
但它没有按预期工作。精灵以不同的方式旋转。通过尝试和尝试我发现这是SpriteKit采用的旋转系统:
现在我不知道为什么他们决定采用这种坐标系,但这很反直觉。如何在此系统和正常系统之间进行转换? 顺便说一句,我怎么能顺时针旋转精灵呢?
答案 0 :(得分:2)
来自文档:
0弧度的角度指定正x轴。一个正角度 是逆时针方向。
要逆时针旋转对象90度,请执行以下操作:
let action = SKAction.rotateToAngle(CGFloat(M_PI/2.0), duration: 5.0)
要将对象顺时针旋转90度,请执行以下操作:
let action = SKAction.rotateToAngle(CGFloat(-M_PI/2.0), duration: 5.0)
或者不使用底片(-90度),您可以将角度指定为正值(270度),并使用rotateToAngle(_:duration:shortestUnitArc:)
方法将对象旋转到导致最小旋转的方向。 / p>
let action = SKAction.rotateToAngle(CGFloat(2 * M_PI - M_PI/2.0), duration: 5, shortestUnitArc: true)
答案 1 :(得分:0)