SpriteKit场景没有重置?

时间:2017-05-02 01:35:55

标签: ios swift swift3 sprite-kit skscene

我的SpriteKit场景文件存在问题。我目前将GameScene.sks排在我的GameScene.swift文件中。当我的应用程序加载用户进入菜单时,用户按下播放并转换到GameScene文件以通过以下方式玩游戏:

let gameScene = SKScene(fileNamed: "GameScene")
        gameScene?.scaleMode = .aspectFit
        self.view?.presentScene(gameScene!, transition: SKTransition.fade(withDuration: 1.5)) 

当玩家击中游戏中的对象时,他们会死并返回菜单(也链接到.sks文件):

 let menu = SKScene(fileNamed: "menu")
    menu?.scaleMode = .aspectFill
    self.view?.presentScene(menu!, transition: transition)

这里我的问题是,在用户返回菜单后,下次他们点击播放时,用户立即死亡并返回菜单。

这是因为当调用GameScene时,一切都与用户死亡时相同。换句话说,玩家正在联系导致他们死亡的同一节点。

有没有办法重置GameScene?我试过删除所有节点无济于事。

我提出错误的场景吗?

1 个答案:

答案 0 :(得分:2)

我想出来了!我将removeFromParent()语句移到了menu.swift文件中。就在我即将过渡到GameScene之前:

obstacles.removeFromParent()

然后

let gameScene = SKScene(fileNamed: "GameScene")
    gameScene?.scaleMode = .aspectFit
    self.view?.presentScene(gameScene!, transition: SKTransition.fade(withDuration: 1.5)) 

如果您有更好的解决方案,请告诉我。谢谢!