要暂停游戏,请暂停整个SKView并尝试淡入“主页”按钮:
self.addChild(pauseHomeButton) // Button node to return to home screen, with alpha 0
pauseHomeButton.run(SKAction.fadeAlpha(to: 1, duration: .5))
self.speed = 0
self.isPaused = true
由于SKView已暂停,因此SKAction也已暂停。我如何仍可以为该按钮的Alpha设置动画,以使其在场景暂停后逐渐消失?
答案 0 :(得分:1)
如果您暂停整个SKView
,或者更可能暂停SKScene
,则无法对其子节点中的任何子节点执行任何操作。
因此,目标是仅暂停您需要暂停的节点。要实现此目的,请为“游戏对象”等设置一个节点,并为“控制”节点设置另一个单独的节点。因此,当一个节点将被暂停时,它不会影响另一个不会被暂停的节点,您将能够在该节点或其子节点上执行操作
class GameScene: SKScene {
var node = SKNode()
var controlNode = SKNode()
}
现在将游戏节点等添加为node
的子代,并将诸如此类的pauseHomeButton
添加为controlNode
的子代
controlNode.addChild(pauseHomeButton)
现在只需暂停node
并在需要时更改其速度
pauseHomeButton.run(SKAction.fadeAlpha(to: 1, duration: .5))
node.speed = 0
node.isPaused = true