SpriteKit:永远不会执行SKAction.wait

时间:2018-10-02 17:14:43

标签: sprite-kit gamekit skaction swift4.2

我有以下代码:

func laser() {
    let scene: SKScene = SKScene(fileNamed: "Laser")!
    let laser = scene.childNode(withName: "laser")

    let waitAction: SKAction = SKAction.wait(forDuration: 0.0001)
    let removeAction: SKAction = SKAction.removeFromParent()
    laser?.run(SKAction.sequence([waitAction,removeAction]))
}

但是似乎节点并没有因为不断增加而被从内存中删除。如果您知道为什么未执行SKAction.waitSKAction.removeFromParent()的任何事情?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

let scene: SKScene = SKScene(fileNamed: "Laser")!

这意味着您正在加载新场景,而不是使用当前场景。

因此,您正在加载一个新场景,将动作从该场景放到激光器上,然后保留该功能。

离开函数后,场景将被破坏,并浪费了CPU周期。

不确定在哪里执行此代码,但是您需要进入实际使用的场景。