SpriteKit: SKAction.wait никогда не выполнялся - PullRequest
0 голосов
/ 02 октября 2018

У меня есть следующий код:

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() не было выполнено?

Я буду очень признателен за вашу помощь.

1 Ответ

0 голосов
/ 03 октября 2018
let scene: SKScene = SKScene(fileNamed: "Laser")!

Это означает, что вы загружаете новую сцену, а не используете сцену, в которой находитесь.

Таким образом, вы загружаете новую сцену, накладываете действие на лазер из этой сцены, затем оставляетеfunction.

Как только вы выходите из функции, сцена уничтожается, и вы тратите впустую циклы процессора.

Не уверен, откуда вы выполняете этот код, но вам нужно попасть на сцену, котораяна самом деле используется.

...