Не появляется на всех уровнях после SKTransition

Я пытаюсь сделать переход между игровым меню и первым уровнем. Но вместо всех Level1 (он построен с использованием файла Level1.sks (здесь я разработал уровень) и Level1.swift(здесь я создал своего "героя" и т. Д.)) На экране появляется просто герой, но нет места, которые были разработаны в Level1.sks.

Как я могу решить эту проблему?

override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {

    for touch: AnyObject in touches {
        let location = touch.locationInNode(self)

        if (playbutton .containsPoint(location)){

            runAction(SKAction.playSoundFileNamed("play.wav", waitForCompletion: false))


            let transition = SKTransition.revealWithDirection(SKTransitionDirection.Down, duration: 1)
            let scene = Level1(size: CGSizeMake(1024, 768))
            scene.scaleMode = SKSceneScaleMode.AspectFill
            self.scene?.view?.presentScene(scene, transition: transition)
            transition.pausesOutgoingScene = true

        }

1 ответ

Вам необходимо разархивировать файл sks в объект SKScene, чтобы элементы из файла могли быть загружены в сцену.

XCode обычно генерирует метод под названием unarchiveFromFile в файле.swift SKScene.

Следующий код должен работать:

override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {

    for touch: AnyObject in touches {
        let location = touch.locationInNode(self)

        if (playbutton .containsPoint(location)){

            runAction(SKAction.playSoundFileNamed("play.wav", waitForCompletion: false))

            if let scene = Level1.unarchiveFromFile("GameScene") as? GameScene {

                let transition = SKTransition.revealWithDirection(SKTransitionDirection.Down, duration: 1)
                scene.scaleMode = SKSceneScaleMode.AspectFill
                self.scene?.view?.presentScene(scene, transition: transition)
                transition.pausesOutgoingScene = true
            }
        }
    }
}
Другие вопросы по тегам