我有一个精灵,我需要检测是否已在其范围内进行了触摸。通常只使用下面的代码工作,但我当前的精灵有子节点超出精灵的范围。因此,我的触摸在父界限之外被检测到,因为精灵界限似乎包括它的子节点。有人知道如何检测是否只对父母进行了触摸(也不是孩子)?
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
}
}
答案 0 :(得分:1)
尝试检查touchLocation
是否在mySprite
的框架内,如下所示:
if CGRectContainsPoint(mySprite.frame, touchLocation) {
// Do something
}