敵に当たり判定を付けたので、今度は自機に当たり判定を付けてみましょう。具体的な処理に入る前に、前処理をしておきます。弾に当たり判定処理をさせるなら、弾に当たり判定範囲などの情報を持たせなければ成りません。そこで以下のようにしてみます。2.0);first_ini関数に弾情報を格納していますが、この当たり判定範囲をちょうどいい大きさに決めるのに時間がかかりました・・。この範囲では納得いかん!という人は試行錯誤で調整して下さい。この関数で弾の大きさ、色の種類数、当たり判定範囲を持たせます。準備が出来たので、本処理にはいっていきましょう。言っても、前回当たり判定のモジュールを作ったので今回も同様に判定すればいいから簡単ですね。ほとんどコピペでOKです。関数の汎用化は後々することにし、今はコピペして少し変更してみましょう。基本敵ショットと自機との当たり判定処理と同じです。enemyshot_and_ch();}enemyshot_and_chは敵のショットと自機との当たり判定処理の関数ですが、ここで、あたったらch.flag=2としていますね?被弾したらキャラは2段階のステータスを踏みます。被弾した瞬間は「喰らいボム受付中」になります。この状態をch.flag=1の状態とします。時間内にボムボタンが押されなかったら次に画面したから浮き上がってくる状態になります。この状態をch.flag=2の状態とします。浮き上がってきて画面内にいるときに、キー入力が行われたら、そこで元のステータスに戻します。キャラが死んだ瞬間からキャラを無敵状態にします。無敵状態であるかどうかのフラグはまた別にあります。ch.mutekicntが0では無い時が無敵です。この時は被弾処理をしないようにします。graph関数内でキャラを描画するとき、2回に1回描画してやります。するとうすくチラチラして無敵である感じになります。無敵状態は適度な時間経過後戻してやります。それらの処理の変更・追加を行いましょう。注:再生FPSの関係で、上の動画ではうまくキャラの点滅が伝えられていません。この動画と実行結果は異なります。実際に自分でコンパイルして実行結果を確かめて下さい。