ज़रूर, मुझे अपने खेल स्टार कैच के लिए यह पता लगाना था। इसे करने के बेहतर तरीके हो सकते हैं लेकिन मैंने इसे कैसे किया। मुझे वास्तव में एल्गोरिथ्म ऑनलाइन मिला (माफ करना मैं स्रोत को याद नहीं कर सकता) मैंने एक बहुभुज के अंदर एक बिंदु का पता लगाने के लिए एक खोज की।
मैंने अपनी बात रखने के लिए एक NSMutableArray बनाया। मैं अपने टॉचेवैंट में अंक जोड़ता हूं।
- (BOOL) testNodeInLoop:(CCNode *)node {
CGPoint prev;
// This is more accurate point for the node
CGPoint absPoint = [node convertToWorldSpace:CGPointZero];
float x = absPoint.x;
float y = absPoint.y;
BOOL isIn = NO;
CGPoint cp;
for(int i = 0, j = [points count] - 1; i < [points count]; j = i++) {
[[points objectAtIndex:i] getValue:&cp];
[[points objectAtIndex:j] getValue:&prev];
if( ((cp.y > y) != (prev.y > y)) && (x < (prev.x -cp.x) * (y - cp.y) / (prev.y - cp.y) + cp.x)) {
isIn = !isIn;
}
}
return isIn;
}
अगर यह मददगार है तो मुझे बताएं।