0
鳥や魚の衝突をチェックしたい。cocos2dチェック衝突
私はキャッシュに
YES
場合、すべての鳥をテストするために
isFishCollidingWithRect
を呼び出し
-(void) update:(ccTime) delta
をすべての目に見える鳥をチェック
-(void) isBirdCollidingWithRect:(CGRect) rect
、bird.visible = NO
とAが含まれているBirdCache
を持っていますFishCache
(BirdCache
と同様)
しかし、その結果、魚は衝突すると死ぬことはありません。 (私は両方の更新
にvisible = NO
を設定しない私はその後、私はschedule:selector(delayedInvisible) interval: 1.0/10.0f
しようとしたが、それでも失敗した。bird.visible = NO
は最初、その後、魚は鳥と衝突することはありませんときに問題が条件にレースをされると思います。
いずれかがあります?そのようなこの種の問題に共通のアプローチ
(この動物は次のフレームで死に至らなければならない)鳥や魚にフィールドを追加し、これを直接視野ではなく衝突時に設定します。はい、私は1/10秒後に呼び出されるdelayedInvisibleメソッドを持っています。 inside delayedInvisible私はスケジュールを取り直しました:まず_cmdを設定してから、不可視を設定してください – John
私はマルチスレッドなしでやっています。あなたは、各フレームのすべての魚や鳥をループする方法がありますか? – ajuc
あなたの解決策は働いた!私はちょうど[fish gotHit]に真を返す前にさせた。しかし私はまだ私の元の方法がうまくいかなかった理由を知りたい。それはシングルスレッドです。はい、isFish/BirdCollidingWithRectで、私はすべての魚/鳥 – John