swift spritekit - 无法使用类型为"SKAction!"的参数调用"runAction"

Sar*_*son 2 ios sprite-kit skaction swift

我试图让SKSpriteNode在屏幕上弹跳,但是当我运行它时,我得到一个错误(在第一行):

无法使用"SKAction!"类型的参数调用"runAction"

我不知道造成这种情况的原因.我已经粘贴了下面的整个runAction代码:

self.runAction(SKAction.sequence(
        [ SKAction.repeatAction(SKAction.sequence(
            [
                {self.updatePath()},
                SKAction.followPath(path.CGPath, duration: 3.0)
            ]), count: numberOfBounces),
            {actionMoveDone()}
        ]
    ))
Run Code Online (Sandbox Code Playgroud)

提前致谢!

0x1*_*41E 5

更改操作的参数一旦启动就不会对操作产生影响.因此,在执行一系列操作期间,您的操作将重复使用相同的原始路径.此外,您正在运行操作self,我假设它是一个SKScene子类,followPath通常在精灵上运行操作.

如果希望精灵在每次迭代期间遵循不同的路径,则需要创建新的操作.一种方法是创建一个更新路径,创建新操作,然后在当前操作完成时调用自身的函数.例如,

func createAction() {
    updatePath()
    sprite.runAction(SKAction.followPath(path.CGPath, asOffset: false, orientToPath: true, duration: 3.0),
        completion: {
            if (++self.count < numberOfBounces) {
                self.createAction()
            }
            else {
              // Run this after running the action numberOfBounces times
              self.actionMoveDone()
           }
        }
    )
}
Run Code Online (Sandbox Code Playgroud)

并通过调用该函数启动该系列

createAction()
Run Code Online (Sandbox Code Playgroud)