敵が突然消えるだけでは何だか寂しいので、消滅エフェクトを作ってみましょう。それでは、エフェクト用のファイルを一つ追加します。「effect.cpp」を追加して下さい。そこに以下のようにコピペして下さい。effect[k].eff=1;//1は光エフェクト。calc_effect();//エフェクトの計算}enter_del_effectに消滅エフェクトを登録すれば、後は全自動でエフェクトを計算してくれる便利な機能です。この関数には引数sに敵の識別番号を渡します。すると、s番の敵が消滅したエフェクトを登録してくれます。今回も新たに情報の格納庫を用意しました。effectの2つです。消滅エフェクトとエフェクトの2つあるのかと疑問に思う人もいるかもしれません。何のエフェクトをどこに登録するかなどを管理する役をします。実際のエフェクトはeffectが計算、描画するのです。このeffect変数は汎用的な物で消滅エフェクト以外にも様々な物が登録出来ます。エフェクトにはこれから様々な物が登場しますが、ほとんどこれで賄います。色んなエフェクトが必要になるたびに、色んな変数を用意するのは大変なのでこうすると効率的なのです。今は、「消滅エフェクト変数の上に、エフェクト変数が乗っかってる。消滅エフェクト変数だけじゃエフェクトにはならない消滅エフェクト変数はエフェクトを管理する役をする」と覚えておいて下さい。enter_del_effect関数で登録された情報はcalc_del_effect()関数で計算されます。注釈を見てもらったら解ると思いますが、登録されている消滅エフェクトを探し、あれば1/30秒に1回エフェクトを登録します。エフェクトの登録番号を探し、そこに情報をセットします。先ほども言ったように、エフェクト変数は何にでも使えるので、何のエフェクトであるかの種類を示すkndに0を入れました。今後消滅エフェクトは0番のエフェクトだとします。out_mainで自機ショット総数と敵総数を総当りで判定させます。これに伴っていつものように以下変更します。