今回は、敵を倒した際にエフェクトを描画したいと思います。キラキラ系のエフェクトを見ているとなんかわくわくしてきますね。
やはり、エフェクトの有無でゲームの見栄えが大きく変わってくるので、ゲームにおけるエフェクトの役割は非常に重要な要素です。
敵を倒した際にエフェクトを表示する【Python・Pygame】
まずは、エフェクト用の画像を用意しておいてください。
今回は、追記した箇所が多かったので全文貼り付けました。
私の場合は、7枚の画像を使ってエフェクトを描画するので画像リストにて7枚の画像をロードしています。「e_l」の値で画像を描画しますが、0の場合は何も表示させないように先頭にNoneを指定しておきます。
Noneにしなくても問題ないんですけど、0番目のエフェクト画像が描画されないので、今回はNoneにしておきます。
一応、敵や弾の最大数と同様にエフェクトの数も100個表示出来るようにしています。
エフェクトを描画する準備を行う関数「effect」にて座標等を指定します。
エフェクトを発生させるタイミングは、プレイヤーが放った弾が敵に当たった時なので、125行目にてこのeffect関数を呼び出します。
画像番号の先頭である「1」と、各座標を代入してエフェクトの準備が完了です。
後は、エフェクトを描画する関数「draw_effect」にてロードした画像を順々に表示させましょう。
私の使用している画像は、縦横それぞれ120pxとやや大きかったので、倍率を0.5倍にしました。
これで60px×60pxになったので、座標を画像の中心となるように計算してそれぞれ引けばOKです。私の場合は、それぞれ30引けば良いってことですね。
かなり本格的なシューティングゲームになってきました。SEを設定するともっと良さげかな?