Jos*_*ría 9 ios sprite-kit swift
我有一个按钮可以在我的代码上暂停游戏.我想要的是将游戏与该按钮暂停会发出一条消息,显示"已暂停".但是,由于场景暂停,因此不会显示该消息.
我现在拥有的是一个SKLabelNode,其开头的alpha值为0.0,当用户暂停游戏时,它会使用fadeInWithDuration()更改为1.0.然后当用户再次按下按钮时,它会使用fadeOutWithDuration()变回0.0.问题是当场景暂停时,带有fadeInWithDuration()的SKAction不会运行.
我怎么能实现这个目标?
cra*_*777 11
苹果在"DemoBots"中使用的最佳方法是创建一个暂停而不是场景的世界节点.
创建一个worldNode属性
class GameScene: SKScene {
    let worldNode = SKNode()
}
将它添加到didMoveToView中的场景中
addChild(worldNode)
然后将您需要的所有内容添加到worldNode.这包括通常由场景运行的动作(例如,计时器,敌人产卵等)
worldNode.addChild(someNode)
worldNode.run(someSKAction)
比你在停顿时所说的那样
worldNode.isPaused = true
physicsWorld.speed = 0
并在简历中
worldNode.isPaused = false
physicsWorld.speed = 1
如果您在暂停时有想要忽略的内容,也可以在更新功能中添加额外的检查.
override func update(_ currentTime: CFTimeInterval) {
    guard !worldNode.isPaused else { return }
    // your code
}
这样,当游戏暂停时,添加暂停的标签或其他UI会更加容易,因为您实际上并未暂停场景.除非将该操作添加到worldNode或worldNode的子级,否则您还可以运行所需的任何操作.
希望这可以帮助