我有一个square = SKSpriteNode()
,当你触摸它时会旋转360°。我想再次触摸它时停止旋转。
现在我会让square
在SKAction.rotate
中旋转,但是我怎么能真实地停止旋转,这意味着我希望精灵旋转得越来越慢,直到它静止不动。
答案 0 :(得分:2)
您是否尝试过缓解timingMode的曲线?如果您不喜欢此效果,则可以提供自己的自定义timingFunction。有几个网站可以在线浏览动画曲线。我喜欢this one.
答案 1 :(得分:2)
您可能需要考虑使用物理实体并施加角度力。
let square = SKSpriteNode(color:.white,size:CGSize(10,10))
if let physicsBody = SKPhysicsBody(rectangleOf:square.frame.size)
{
physicsBody.isDynamic = true
physicsBody.allowsRotation = true
physicsBody.affectedByGravity = false
physicsBody.angularDamping = 0.1 //Adjust this to speed up or slow down the resistance of the spin
square.physicsBody = physicsBody
}
...
当你需要旋转时:
square.physicsBody!.angularImpulse(1) //Adjust this to change the amount of force applied to the spin