自己紹介

低層をがむしゃらに走る自称プログラマ ちょっとWebとかに手を出してる

ブログ アーカイブ

2010年5月26日水曜日

第2の問題

当たり判定の問題

結構カオスです当たり判定
あの手この手で、一応前に進んでいる感じはある。


BOX2Dで用意されてる処理は、簡単にまとめるとこんな感じです


当たった処理

当たっている間の処理

離れた時の処理

この三つを行ってる
この判定は、b2ContactListener
によって行われる

見てもらえればわかるだろうが、引数として(b2ContactPoint *point)
が渡されている。

ちなみに、当たり判定の処理中は
B2Body内でのオブジェクトの生成が不可能になる
ようするに、CreateBody等の処理が不可能になるのである

よって

大きい敵に、弾が当たった瞬間、小さい敵を吹き出すなんて処理は、
当たり判定処理とは別のところで行う必要があるわけだ

そこで、まず、三種の内、どの当たり判定が行われたかどうか、というフラグ作り
それぞれのフラグに応じて、独自の当たり判定後処理を行うようにした。

次に、b2ContactPointをUserData内に保持させて、それを当たり判定後処理に使わせようとしたのだ


実際やってみたところ、これでは問題があるということが判明した

Shape1と2が消えている^p^
つまりNULLというか、不定値になっているのだ、ぐぇgヵ

死ね

―――――


で、現在進行中なのは
Shape1と2を同じようにUserDataに持たせようと言うことであった
以下次回へすすむはず…

0 件のコメント:

コメントを投稿