Я создаю свою первую игру в SpriteKit. Я пытаюсь приостановить свою GameScene, а затем запустить некоторые анимации через SpriteKit. Проблема в том, что если я приостанавливаю сцену, используя self.view?.isPaused = true
, все останавливается. После поиска я обнаружил, что способ сделать это - добавить еще один узел в сцену и сделать все остальное, что вы хотите приостановить, дочерние узлы этого узла. Я пытаюсь это сделать, но не добился успеха. Это код, который я имеюSpritekit: Приостановка родительского узла не приостанавливает дочерний узел
var worldNode:SKNode?
override func didMove(to view: SKView) {
worldNode = SKNode()
self.addChild(self.worldNode!)
let spriteNode:SKSpriteNode = SKSpriteNode(imageNamed: "red_ball")
spriteNode.size = CGSize(width: 40, height: 40)
spriteNode.physicsBody = SKPhysicsBody(circleOfRadius: 15)
spriteNode.physicsBody?.isDynamic = true
self.worldNode?.addChild(spriteNode)
spriteNode.physicsBody?.applyImpulse(CGVector(dx: 10, dy: 10))
self.worldNode?.isPaused = true
//self.view?.isPaused = true
}
, когда я запускаю это я вижу мяч движется на экране, которое не должно происходить в соответствии с моим пониманием, так как я приостановив worldNode
и spriteNode
является дочерним узлом этого. Если я использую self.view?.isPaused = true
, чтобы приостановить сцену, тогда мяч будет неподвижен, как ожидалось. Я что-то упускаю ? как я могу добавить узлы в worldNode
, а затем просто приостанавливать только эти узлы, приостанавливая worldNode
. Благодаря !
после размещения этого я понял, что даже приостановка дочернего узла непосредственно с spriteNode.isPaused = верно , не приостанавливает его, возможно, узлы с приложением имплантов не могут быть приостановлены таким образом? Похоже, мне нужно найти альтернативу, возможно, вместо этого использовать анимацию пользовательского интерфейса, которая будет продолжать работать, даже если сцена остановлена – comatose