Касание SKSpriteNode обнаружено быстро

У меня возникли проблемы с обнаружением прикосновения к конкретному узлу. Вот то, что я должен далеко.

let playagain = SKSpriteNode(imageNamed: "PlayAgain.png")

override func didMoveToView(view: SKView) {
    super.didMoveToView(view)

}

затем, когда игрок умирает, появляются эти два узла.

    playagain.position = CGPoint(x:frame.size.width * 0.5, y: frame.size.height * 0.5)
    addChild(playagain)

    gameover.position = CGPoint(x:frame.size.width * 0.5, y: frame.size.height * 0.75)
    addChild(gameover)

все выше работает. узел появляется на экране, где я спросил, я просто не могу заставить его показать, что я щелкнул по нему. как вы можете видеть, узел называется playagain, когда нажимается узел playagain, я хочу иметь возможность обновить игру. то, что у меня есть до сих пор, ниже.

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

    for touch in touches {
       let location = (touch as! UITouch).locationInNode(self)
       let play = self.nodeAtPoint(location)
       if play.name == "playagain" {

           println("touched")
       }
    }
}

Благодарность!


person E.O'Brien    schedule 23.12.2015    source источник


Ответы (1)


Вы не используете последнюю версию Xcode? Ваш код запуска прикосновений не должен работать с Swift 2 и Xcode 7.

Попробуй это

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    for touch in touches {
        let location = touch.locationInNode(self)

        if playagain.containsPoint(location) {

         /// playagain was pressed, do something
        }
    }
}

или это

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    for touch in touches {
        let location = touch.locationInNode(self)
        let touchedNode = self.nodeAtPoint(location)

        if touchedNode == playagain {

         /// playagain was pressed, do something
        }
    }
}
person crashoverride777    schedule 25.12.2015
comment
не могли бы вы отметить вопрос как ответ. Благодарность - person crashoverride777; 27.12.2015