Ios 如何使节点以较慢的持续时间旋转?
我有这个节点,当我按住一个按钮时,我希望节点旋转得慢一些。我将Ios 如何使节点以较慢的持续时间旋转?,ios,xcode,swift,sprite-kit,rotation,Ios,Xcode,Swift,Sprite Kit,Rotation,我有这个节点,当我按住一个按钮时,我希望节点旋转得慢一些。我将duration参数从1更改为50,它仍然以相同的速度旋转节点。我做错了什么 let rotateRate = (SKAction.rotateByAngle(CGFloat(-M_PI_2), duration: 50.0)) let repeatRotate = SKAction.repeatActionForever(rotateRate) heroNode.runAction(repeatRotate) 创建动作后,无法修改
duration
参数从1更改为50,它仍然以相同的速度旋转节点。我做错了什么
let rotateRate = (SKAction.rotateByAngle(CGFloat(-M_PI_2), duration: 50.0))
let repeatRotate = SKAction.repeatActionForever(rotateRate)
heroNode.runAction(repeatRotate)
创建动作后,无法修改其持续时间参数。。。所以你不能以你期望的方式影响动作的速度。但你有几个选择:
- 要重新创建操作(您可能希望使用此操作的键运行操作)
- 要更改该操作的速度,请执行以下操作:
if let action = node.actionForKey("aKey"){ action.speed = 1.5 }
可能会更多,但这会让您了解正在进行的操作。创建操作后,您无法修改其持续时间参数。。。所以你不能以你期望的方式影响动作的速度。但你有几个选择:
- 要重新创建操作(您可能希望使用此操作的键运行操作)
- 要更改该操作的速度,请执行以下操作:
if let action = node.actionForKey("aKey"){ action.speed = 1.5 }
可能更多,但这将给出一个想法。我建议首先使用Whirlwind的选项,99%的时间都应该使用该选项,但如果不能选择改变速度,只需以较小的间隔在相反方向上应用另一个旋转动作即可
let rotateRate = (SKAction.rotateByAngle(CGFloat(-M_PI_2), duration: 50.0))
let repeatRotate = SKAction.repeatActionForever(rotateRate)
heroNode.runAction(repeatRotate)
...
func slowDown()
{
let rotateRate = (SKAction.rotateByAngle(CGFloat(M_PI_4), duration: 50.0))
let repeatRotate = SKAction.repeatActionForever(rotateRate)
heroNode.runAction(repeatRotate, forKey:"slowdown")
}
func removeSlowDown()
{
heroNode.removeActionForKey("slowdown")
}
我建议首先使用Whirlwind的选项,99%的时间都应使用该选项,但如果不能选择改变速度,则只需以较小的间隔在相反方向上应用另一个旋转动作即可
let rotateRate = (SKAction.rotateByAngle(CGFloat(-M_PI_2), duration: 50.0))
let repeatRotate = SKAction.repeatActionForever(rotateRate)
heroNode.runAction(repeatRotate)
...
func slowDown()
{
let rotateRate = (SKAction.rotateByAngle(CGFloat(M_PI_4), duration: 50.0))
let repeatRotate = SKAction.repeatActionForever(rotateRate)
heroNode.runAction(repeatRotate, forKey:"slowdown")
}
func removeSlowDown()
{
heroNode.removeActionForKey("slowdown")
}