SKAction 继续工作

SKAction continue working

我正在使用以下方法暂停我的游戏

self.scene?.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()

现在,当您想将 child 添加到场景时,而不是将其添加到图层:

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

别忘了将图层也添加到场景中

addChild(gameLayer)
addChild(pauseLayer)

要暂停图层,请这样写:

Swift 3

gameLayer.isPaused = true

Swift 2

gameLayer.paused = true

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