Я не совсем уверен, как и где вы проверяете, находится ли птица на пути. Я думаю, что прямо перед заполнением вашего пути, который вы должны сделать (см., Если-еще):
-(void)fillMutablePath{
CGPoint movePoint = CGPointFromString([pointsToFillArray objectAtIndex:0]);
CGPathMoveToPoint(fillPath, NULL, movePoint.x, movePoint.y);
for (int i=0; i<[pointsToFillArray count]; i++) {
//...
}
CGContextAddPath(gameViewObj._myContext, fillPath);
if(CGPathContainsPoint(fillPath, nil, bird.center, false)){
[self doDie];
}
else {
CGContextFillPath(gameViewObj._myContext);
}
CGPathRelease(fillPath);
[pointsToFillArray removeAllObjects];
}
Если птица на пути, умри. Остальное, ничья.
Изменить после уточнения:
//...
CGContextAddPath(gameViewObj._myContext, fillPath);
CGContextFillPath(gameViewObj._myContext);
if(CGPathContainsPoint(fillPath, nil, bird.center, false)){
[self doDie];
}
CGPathRelease(fillPath);
[pointsToFillArray removeAllObjects];
}