অবশ্যই, আমার গেম স্টার ক্যাচের জন্য আমাকে এটি খুঁজে বের করতে হয়েছিল। এটি করার আরও ভাল উপায় থাকতে পারে তবে আমি এটি এটি করেছিলাম। আমি আসলে অনলাইনে অ্যালগরিদমটি খুঁজে পেয়েছি (দুঃখিত আমি উত্সটি মনে করতে পারি না) বহুভুজের ভিতরে একটি বিন্দু সনাক্ত করার জন্য আমি অনুসন্ধান করেছি।
আমি আমার বক্তব্য ধরে রাখতে একটি এনএসমিটেবলআরে তৈরি করেছি। আমি আমার স্পর্শকাতরগুলিতে পয়েন্টগুলি যুক্ত করি।
- (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;
}
এটি সহায়ক হলে আমাকে জানান know