2014-11-25 4 views
-1

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

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

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 используя NSKeyedUnarchiver первый – ZeMoon

ответ

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 
      } 
     } 
    } 
}