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
上的所有节点都不会暂停。
我正在使用以下方法暂停我的游戏
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
上的所有节点都不会暂停。