Докосването на 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