检测SKNode(swift)上的触摸

时间:2015-08-06 00:22:49

标签: ios sprite-kit sknode child-nodes

我已经创建了一个容器节点来放入我需要一次性移动的所有SKSpriteNodes,我可以在iOS 8中检测到它们的触摸,但在iOS 7中我只能检测主节点上的触摸以及何时触摸我触摸了SKSpriteNode,它在容器节点中没有任何反应..我该如何解决这个问题?

let lvlsNode = SKNode()



override func didMoveToView(view: SKView) {

            self.addChild(lvlsNode)

            axe = SKSpriteNode(imageNamed:"axe")
            axe.anchorPoint = CGPointMake(1, 0)
            axe.size = CGSizeMake(axe.size.width/1.4, axe.size.height/1.4)
            axe.position = CGPointMake(0+screenWidth/7, shield.position.y-shield.size.width*1.4)
            axe.zPosition = 12
            axe.name = "axe"
            lvlsNode.addChild(axe)
}
 override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
        /* Called when a touch begins */

        for touch in (touches as! Set<UITouch>) {
            let location = touch.locationInNode(self)
            let node = nodeAtPoint(location)

          if node.name == "axe" { 
             // do something.... this work in iOS8 but not in iOS 7.1
           }

1 个答案:

答案 0 :(得分:0)

Yournode.name = "nodeX"

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
   let touch = touches.first as UITouch!
   if atPoint((touch?.location(in: self))!).name == Yournode.name {
       //Your code
   }
}