检测Touch是否在Sprite界限内,但忽略儿童

时间:2016-01-31 03:26:00

标签: ios swift sprite-kit sprite touches

我有一个精灵,我需要检测是否已在其范围内进行了触摸。通常只使用下面的代码工作,但我当前的精灵有子节点超出精灵的范围。因此,我的触摸在父界限之外被检测到,因为精灵界限似乎包括它的子节点。有人知道如何检测是否只对父母进行了触摸(也不是孩子)?

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

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

    if mySprite.containsPoint(touchLocation) {

        // Do Something

    }

}

1 个答案:

答案 0 :(得分:1)

尝试检查touchLocation是否在mySprite的框架内,如下所示:

if CGRectContainsPoint(mySprite.frame, touchLocation) {
  // Do something
}