通过触摸进行CCSprite检测而不使用透明像素

时间:2015-06-03 12:47:33

标签: cocos2d-iphone ccsprite spritebuilder

我正在尝试使用以下方法检测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;
    }
}

完美无缺。 所以我已经可以检测到点击的精灵了。 因为我使用的是某些部分透明的精灵,所以当点击精灵的透明部分时也会检测到它们。

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

对于我正在使用的物理physics shape polygon。有没有办法将这个多边形用于:

多边形包含点(对象。 physicsPolygon ,位置)

?或者甚至可以说所有像素,但透明度为100的像素?或者更简单的解决方案?

0 个答案:

没有答案