Вот два метода расширения (категории) CCNode, которые я добавил в игровой движок Kobold2D :
-(BOOL) containsPoint:(CGPoint)point
{
CGRect bbox = CGRectMake(0, 0, contentSize_.width, contentSize_.height);
CGPoint locationInNodeSpace = [self convertToNodeSpace:point];
return CGRectContainsPoint(bbox, locationInNodeSpace);
}
-(BOOL) containsTouch:(UITouch*)touch
{
CCDirector* director = [CCDirector sharedDirector];
CGPoint locationGL = [director convertToGL:[touch locationInView:director.openGLView]];
return [self containsPoint:locationGL];
}
Проверка, находится ли точка на спрайте (или метка илилюбой другой узел) тогда просто:
UITouch* uiTouch = [touches anyObject];
if ([aSprite containsTouch:uiTouch])
{
// do something
}