我使用以下内容暂停游戏
self.scene?.paused = true
但是,当场景暂停时,所有SKAction
都会停止。我该怎么做才能让一些行动继续发挥作用?
答案 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
菜单。