今回は当たり判定についてです。速いショットを撃たせる場合、それだけじゃすまない場合があります。当たり判定についてピタゴラスの定理で判定する方法がわからなければゲームプログラミングの館s11章で確認しておいて下さい。→リンク当たり判定の有効範囲が10だとして、弾のスピードが100だとどうなるでしょう。弾が高速に移動する場合、調査していないエリアが出てきてしまうのです。よって敵が自機弾をすり抜ける事があります。そんなことの無いように、自機ショットが通った所は少しずつ調査し、漏れがないようにしないといけません。メンドクサイですが、以下のように実装してみましょう。out_judge_cshot関数では渡されたi番の自機ショットデータとs番の敵データの当たりを判定するのですが、>if(cshot[i].cnt>0){つまり一度でも軌道計算された弾なら一度1フレーム前の位置まで戻してから弾と敵との当たり判定の合計分ずつ現在の位置に近づけていき、その都度、毎回当たっていないか調査していきましょう。それを実装したのが以下です。}}out_mainで自機ショット総数と敵総数を総当りで判定させます。これに伴っていつものように以下変更します。鳴ってるときに停止してから再生しなおすと、プツプツ途切れて聞こえるのです。再生し終わってから再生しないといけないんですね。今の所それが必要なのは8だけなので今はこうしておきましょう。エクセルデータは適当に変更して下さい。