ヘルプと提案を通じて、不透明な部分だけに触れることができるように、スプライトのパスを作成しました。これは私が思いついた道です:
path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, endTouch.x, endTouch.y);
CGPathAddLineToPoint(path, NULL, 0, 250);
CGPathAddLineToPoint(path, NULL, 30, 0);
CGPathCloseSubpath(path);
これは、1つを除く他のすべてのクラスで機能します。どこをタップしても、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;
}
}
スプライトを移動できるのは、if条件の中に入る場合のみですが、それ以外の場合は、実際の色付きのスプライトをタップしても、設定したパスを取得できません。私の測定値は間違っていますか?そうでない場合、私は何を間違っていますか?これは私が使おうとしている画像に似ています...