Cocos2d iphone 无透明像素的触摸式CCSprite检测
我正在尝试使用以下方法检测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
@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下找到下一个节点”。这是一个相当复杂的问题。有没有办法得到物理多边形的面积?