У меня две сцены. GameScene и PlayScene. GameScene - это скорее «домашний экран», в то время как PlayScene - это настоящий игровой процесс. При переходе на PlayScene все нормально.SpriteNodes испортились после возвращения в GameScene (Swift)
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
if self.nodeAtPoint(location) == self.playbutton {
let scaleDown = SKAction.scaleBy(0.01, duration: 1.0)
self.playbutton.runAction(scaleDown)
var scene = PlayScene(size: self.size)
let skView = self.view as SKView!
scene.size = skView.bounds.size
let transition = SKTransition.pushWithDirection(SKTransitionDirection.Left, duration: 3)
transition.pausesOutgoingScene = false
skView.presentScene(scene, transition: transition)
}
}
}
... Однако, когда кто-то отправляется обратно в GameScene после нажатия на кнопку «Повтор» в PlayScene, все узлы в GameScene перепутались. Их размеры увеличены, и один узел даже обращен назад.
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
let touch = touches.anyObject() as UITouch
let touchLocation = touch.locationInNode(self)
isFingerTouching = true
if self.nodeAtPoint(touchLocation) == self.facebookButton {
facebookButtonPushed()
}
if self.nodeAtPoint(touchLocation) == self.twitterButton {
twitterButtonPushed()
}
if self.nodeAtPoint(touchLocation) == self.replay {
var scene = GameScene(size: self.size)
let skView = self.view as SKView!
scene.size = skView.bounds.size
let transition = SKTransition.crossFadeWithDuration(1.0)
transition.pausesOutgoingScene = false
skView.presentScene(scene, transition: transition)
}
}
Я не уверен, как это происходит, но любая помощь будет отличной. Спасибо!