在 Swift 中真实地停止旋转
Posted
技术标签:
【中文标题】在 Swift 中真实地停止旋转【英文标题】:Make rotation stop realisticly in Swift 【发布时间】:2017-12-05 20:47:35 【问题描述】:我有一个square = SKSpriteNode()
,当你触摸它时它会旋转 360°。当你再次触摸它时,我想停止旋转。
现在我会让square
在SKAction.rotate
中旋转,但是我怎样才能真正停止旋转,这意味着我希望精灵旋转得越来越慢,直到它静止为止。
【问题讨论】:
【参考方案1】:您是否尝试过缓和 timingMode 的曲线?如果您不喜欢这种效果,您可以提供自己的自定义timingFunction。有几个网站可以在线探索动画曲线。我喜欢this one.
【讨论】:
感谢您的回答,但我不知道如何实现timingMode
。能否顺便提供一些代码?【参考方案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
【讨论】:
以上是关于在 Swift 中真实地停止旋转的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中:如何使用 uislider 值作为变量来设置旋转速度
Jquery旋转,在mouseenter上运行,在mouseout上停止