Cocos2d iphone 无透明像素的触摸式CCSprite检测

Cocos2d iphone 无透明像素的触摸式CCSprite检测,cocos2d-iphone,ccsprite,spritebuilder,Cocos2d Iphone,Ccsprite,Spritebuilder,我正在尝试使用以下方法检测CCSprite上的触摸: @implementation MainScene{ CCPhysicsNode *_levelView; } - (void)touchBegan:(CCTouch *)touch withEvent:(CCTouchEvent *)event{ CGPoint location = touch.locationInWorld; CCSprite *clickedSprite; for (CCSprite

我正在尝试使用以下方法检测CCSprite上的触摸:

@implementation MainScene{
    CCPhysicsNode *_levelView;
}

- (void)touchBegan:(CCTouch *)touch withEvent:(CCTouchEvent *)event{
    CGPoint location = touch.locationInWorld;
    CCSprite *clickedSprite;

    for (CCSprite *obj in _levelView.children)
    {
        if (CGRectContainsPoint(obj.boundingBox, location))
            clickedSprite = obj;
    }
}
这很好用。
这样我就可以检测到点击的精灵了。 由于我使用的精灵在某些部分是透明的,因此单击精灵的透明部分时也会检测到它们

但我想从检测中排除透明部分…

对于物理,我使用的是
物理图形多边形
。有没有一种方法可以将此多边形用于以下情况:

多边形包含点(对象物理多边形,位置)


??或者甚至可以用一种方式来表示除了透明度为100的像素以外的所有像素?或者更简单的解决方案?

为什么不能使用触摸屏的位置?看,我已经可以检测到点击的精灵了。但是,当单击精灵的透明部分时,也会检测到它们。我想从检测中排除透明部分…好的,这样更清楚。您需要使用正常的“在手指下查找节点”方法,然后根据您的条件手动拒绝选择(不确定如何执行)。当然,如果您拒绝选择,您将希望“在finger下找到下一个节点”。这是一个相当复杂的问题。有没有办法得到物理多边形的面积?