画面の上部から下部に移動するアニメーションのような「雨」があります(いくつかの画像が上部から継続的にドロップします)。下部に指で操作するバスケット画像もあります。ドロップする画像とバスケットの間の「衝突」の量をアプリでカウントし、衝突した場合は画像を削除したいと思います。
私は2つのタイマーを使用します。1つは画像を上から継続的にドロップするためのものです。私はそれらの画像のそれぞれを配列に入れました。次に、0.001ごとに衝突をチェックする別のタイマーがあります。
2つのオブジェクトが衝突するたびにカウントを取得できましたが、問題は、カウントが多すぎることです。たとえば、視覚的な衝突はそれぞれ、985回の衝突のようにカウントされます。コードで何が間違っているのですか?:タイマー:
[NSTimer scheduledTimerWithTimeInterval:(0.001) target:self selector:@selector(onCollisionCheckTimer) userInfo:nil repeats:YES];
衝突チェッカー:
- (void)onCollisionCheckTimer{
for (x = 0; x<100; x++){
CALayer *layer = appleView[x].layer.presentationLayer;
if(CGRectIntersectsRect(basketView.frame, layer.frame)) {
collision++;
printf("%i\n", collision);
[appleView[x] removeFromSuperview];
}
}
}
printf("%i", collision);
衝突ごとに数百の数値を出力しています