2016-02-03 5 views
1

Я пытаюсь перейти к своей GameScene с моей GameOverScene. У меня есть следующие функции touchBegan, но когда я нажимаю кнопку «Replay Game», она не переходит.Переход к GameScene с GameOverScene

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 

    let touch = touches.first! as UITouch 
    let touchLocation = touch.locationInNode(self) 
    let touchedNode = self.nodeAtPoint(touchLocation) 

    if let name = touchedNode.name { 
     if name == "replay"{ 
      print("Touching Replay") 
      let reveal : SKTransition = SKTransition.flipHorizontalWithDuration(0.5) 
      let scene = GameScene(size: self.size) 
      scene.scaleMode = .AspectFill 
      self.view?.presentScene(scene, transition: reveal) 
     } 
    } 
} 

Я также следующие используются для создания моего переигровки узла:

let replayMessage = "Replay Game" 
var replayButton = SKLabelNode(fontNamed: "Chalkduster") 
replayButton.text = replayMessage 
replayButton.fontColor = SKColor.blackColor() 
replayButton.position = CGPointMake(self.size.width/2, 50) 
replayButton.name = "replay" 
self.addChild(replayButton) 

я получаю следующий результат:

прикасаясь Replay 2016-02-03 01: 11: 08,102 Испытание [1010: 196002] CUICatalog: Недействительный запрос: запрашивающий подтип без указания идиомы

+0

Это, вероятно, потому, что вы не прикасаясь к "Replay" узел. Если я попробую ваш код в пустом проекте, он работает. Об этом предупреждении ... Вы не должны беспокоиться ... Подробнее [здесь] (http://stackoverflow.com/a/34320470/3402095). – Whirlwind

+0

может быть другой вид или спрайт над ним. если это так, вы можете отключить взаимодействие пользователя для этого узла или представления. –

ответ

1

Привет, попробуйте следующее:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 

     let touch = touches.first! as UITouch 
     let touchLocation = touch.locationInNode(self) 
     let touchedNode = self.nodeAtPoint(touchLocation) 

     if let name = touchedNode.name { 
      if name == "replay"{ 
      let transition = SKTransition.fadeWithColor(UIColor.whiteColor(), duration:1.0) 
      let GameOver = MainScene(size: scene!.size) 
      GameOver.scaleMode = scaleMode 
      view!.presentScene(GameOver, transition: transition) 
      print("Game Over!") 
      } 
     } 
    } 
Смежные вопросы