回答:
確かに、私は私のゲームスターキャッチのためにそれを理解しなければなりませんでした。それを行うにはもっと良い方法があるかもしれませんが、これは私がそれをした方法です。実際にアルゴリズムをオンラインで見つけました(ソースを思い出せません)ポリゴン内のポイントを検出するために検索を行いました。
私は自分のポイントを保持するために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;
}
これが役に立ったかどうかをお知らせください。
本「リアルタイム衝突検出」には、線/セグメントの衝突検出に関するセクションがあります。Googleブックスの例:http : //ow.ly/2gjQf