SKAction继续工作

时间:2016-09-07 20:24:26

标签: ios swift sprite-kit skaction

我使用以下内容暂停游戏

self.scene?.paused = true

但是,当场景暂停时,所有SKAction都会停止。我该怎么做才能让一些行动继续发挥作用?

2 个答案:

答案 0 :(得分:3)

将某些节点添加到不同的SKNode,因此您只能暂停要暂停的图层(SKNode)。它看起来像这样:

let gameLayer = SKNode() 
let pauseLayer = SKNode()

现在,当您想要将子项添加到场景中时,请将其添加到图层中:

gameLayer.addChild(gameSceneNode)
pauseLayer.addChild(pauseSceneNode)

不要忘记将图层添加到场景中

addChild(gameLayer)
addChild(pauseLayer)

要暂停图层,请写下:

Swift 3

gameLayer.isPaused = true

Swift 2

gameLayer.paused = true

请注意,在此示例中,gameLayer上的所有节点都将暂停,但pauseLayer上的所有节点都不会。

答案 1 :(得分:2)

您需要以可以暂停某些节点(例如游戏节点)的方式设计节点树,而不是暂停其他节点(例如,暂停菜单节点)。在节点上设置paused属性时,它也适用于所有子节点。

示例节点层次结构:

GameScene
    GameplayNode
        Character
        Enemy
        Enemy
    PauseMenu
        PlayButton
        VolumeButton

如果您想在游戏暂停期间为PlayButton设置动画,可以将GameplayNode.paused设置为true,并且仍然可以暂停SKAction菜单。