Если вы приостановите весь 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