Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使节点以较慢的持续时间旋转?_Ios_Xcode_Swift_Sprite Kit_Rotation - Fatal编程技术网

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")
}