首页 > 解决方案 > SpriteKit:SKAction.wait 从未被执行

问题描述

我有以下代码:

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.wait被执行,要么SKAction.removeFromParent()没有被执行?

我会非常感谢你的帮助。

标签: sprite-kitgamekitskactionswift4.2

解决方案


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

这意味着您正在加载一个新场景,而不是使用您所在的场景。

因此,您正在加载一个新场景,将动作放在该场景中的激光上,然后离开该功能。

一旦你离开这个函数,场景就被破坏了,你浪费了 CPU 周期。

不确定您从哪里执行此代码,但您需要到达实际使用的场景。


推荐阅读