Objective c cocos2d中未正确检测到CGPath

Objective c cocos2d中未正确检测到CGPath,objective-c,cocos2d-iphone,cgpath,Objective C,Cocos2d Iphone,Cgpath,通过帮助和建议,我为我的精灵创建了一条路径,以便只能触摸不透明的部分。这就是我想到的道路: path = CGPathCreateMutable(); CGPathMoveToPoint(path, NULL, endTouch.x, endTouch.y); CGPathAddLineToPoint(path, NULL, 0, 250); CGPathAddLineToPoint(path, NULL, 30, 0); CGPathCloseSubpa

通过帮助和建议,我为我的精灵创建了一条路径,以便只能触摸不透明的部分。这就是我想到的道路:

    path = CGPathCreateMutable();
    CGPathMoveToPoint(path, NULL, endTouch.x, endTouch.y);
    CGPathAddLineToPoint(path, NULL, 0, 250);
    CGPathAddLineToPoint(path, NULL, 30, 0);
    CGPathCloseSubpath(path);
这适用于除一个之外的所有其他类。无论我点击何处,xcode都会使用以下代码继续打印“外部”:

for(int i = 0; i < [sprArray count]; i++)
{
    CCSprite *sprite = (CCSprite *)[sprArray objectAtIndex:i];
    if(CGRectContainsPoint([sprite boundingBox], location))
    {
        selectedSprite = sprite;
        location = [selectedSprite convertToNodeSpace:location];
        if (CGPathContainsPoint(path, NULL, location, NO) ) 
        {
            NSLog(@"inside");
        }
        else 
        {
            NSLog(@"outside");
        }

        break;
    }
}
for(int i=0;i<[sprArray count];i++)
{
CCSprite*sprite=(CCSprite*)[sprArray objectAtIndex:i];
if(CGRectContainsPoint([sprite boundingBox],位置))
{
selectedSprite=精灵;
位置=[selectedSprite convertToNodeSpace:location];
if(CGPathContainsPoint(路径,空,位置,否))
{
NSLog(@“内部”);
}
其他的
{
NSLog(“外部”);
}
打破
}
}
我只能移动我的精灵,如果我进入如果条件,否则,但即使我点击实际的彩色精灵,它也不会得到我设置的路径。我的尺寸错了吗?如果没有,我做错了什么?这与我尝试使用的图像相似


仅当图像大小相同时,此功能才起作用。根据图像大小计算坐标

CGPathMoveToPoint(path,    NULL,   54, 0 ); //1: 54 = distance from left, 0 = dis fem bottom
CGPathAddLineToPoint(path, NULL,   28, 34 );
CGPathAddLineToPoint(path, NULL,   36, 76 );
CGPathAddLineToPoint(path, NULL,   51, 104 );
CGPathAddLineToPoint(path, NULL,   46, 147 );
CGPathAddLineToPoint(path, NULL,   67, 147 );
CGPathAddLineToPoint(path, NULL,   70, 105 );
CGPathAddLineToPoint(path, NULL,   56, 66 );
CGPathAddLineToPoint(path, NULL,   52, 42 );
CGPathAddLineToPoint(path, NULL,   67, 20 );
CGPathAddLineToPoint(path, NULL,   92, 0 );
CGPathCloseSubpath(path);


请更详细地回答这个问题。非常感谢!所以,如果我有不同形状的精灵,我必须创建不同的路径,对吗?是的,对于iphone和iPad……你可能会对创建此路径感到厌倦。因此,如果形状的数量有限,那么只选择这种方式。再次感谢你的帮助。我又有一个问题。对于有动画的精灵,您有什么建议?尚未对动画精灵使用CGPath。在最坏的情况下,您可以使用每帧特定的CGPath。在使用此方法之前,请听取一些专家的建议:(