私はcocos2Dの衝突を検出しようとしています。私はこのコードを使用しています:Cocos2Dの衝突検出
- (void)checkForCollisionSpeedUp:(ccTime)dt
{
CGRect projectileRect = CGRectMake(
guy.position.x,
guy.position.y,
2,
20);
CGRect targetRect = CGRectMake(
speedUp.position.x - (speedUp.contentSize.width/2),
speedUp.position.y - (speedUp.contentSize.height/2),
speedUp.contentSize.width,
speedUp.contentSize.height);
if (CGRectIntersectsRect(projectileRect, targetRect)) {
[[SimpleAudioEngine sharedEngine] playEffect:@"Robot_blip-Marianne_Gagnon-120342607.wav"];
[bg removeChild:speedUp cleanup:YES];
}
}
このコードは衝突を検出し、それが音を再生し、スプライトではなく、CGRectを削除します。 CGRectはスプライトが削除されたときの位置にとどまります。これをどうすれば解決できますか?
おかげで、
テートまた
は、私は本当に衝突検出のためにBOX2Dやシマリスを使用したくありません。
CGRectがその位置に残っているとはどういう意味ですか? – arul
@arulだから、基本的に、私のアプリはあなたに落ちるスプライトを持っています。彼らがあなたと衝突すると、サウンドが再生され、私が言ったように、スプライトは削除されます。問題は、スプライトが削除された場所に移動すると、スプライトが削除されなかったかのように、衝突を検出してサウンドを何度も繰り返し再生することです。そのため、CGRect削除されました。希望は意味をなさない。 – tallen11