Ios 请继续工作

Ios 请继续工作,ios,swift,sprite-kit,skaction,Ios,Swift,Sprite Kit,Skaction,我正在使用以下命令暂停我的游戏 self.scene?.paused = true 但是,当场景暂停时,所有SKActions将停止。我该怎么做才能让某些操作继续工作?您需要设计节点树,以便可以暂停某些节点(例如,游戏节点),而不暂停其他节点(例如,暂停菜单节点)。在节点上设置paused属性时,该属性也适用于其所有子节点 节点层次结构示例: GameScene GameplayNode Character Enemy Enemy

我正在使用以下命令暂停我的游戏

self.scene?.paused = true

但是,当场景暂停时,所有
SKAction
s将停止。我该怎么做才能让某些操作继续工作?

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

节点层次结构示例:

GameScene
    GameplayNode
        Character
        Enemy
        Enemy
    PauseMenu
        PlayButton
        VolumeButton

如果您想在游戏暂停时设置
PlayButton
的动画,可以将
GameplayNode.paused
设置为
true
,并且暂停菜单中仍有可用的
SKAction

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

节点层次结构示例:

GameScene
    GameplayNode
        Character
        Enemy
        Enemy
    PauseMenu
        PlayButton
        VolumeButton

如果您想在游戏暂停时设置
PlayButton
的动画,您可以将
GameplayNode.paused
设置为
true
,并且在暂停菜单中仍有可用的
SKAction

将某些节点添加到不同的
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
上的所有节点都不会暂停。

将某些节点添加到不同的
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
上的所有节点都不会暂停。

有关如何实现这种类型的节点层次结构,请参阅我的应答。有关如何实现这种类型的节点层次结构,请参阅我的应答暂停有错误,当您设置节点时,所有的子暂停状态也会改变,记住这一点。当你设置一个节点时,所有的子暂停状态也会改变,记住这一点