敵の処理を改良する(1/5)

 敵の処理を改良して、敵の種類を増やします。

 1.敵のデータを用意する
 2.変数の初期設定
 3.ステージ数表示
 4.敵の出現
 5.敵の移動
 6.敵弾の出現
 7.敵と自機弾の当たり判定
 8.自機と敵、敵弾の当たり判定
 9.敵のダメージ処理
 10.敵を描画
 11.敵の爆発を描画
 12.敵が爆発中の処理
 13.エンディング

 ザコ3種類、中型敵2種類、ボス3種類に増やします。ボスを倒すと次のステージに進むようにし、ステージ3をクリアしたらエンディングメッセージを表示します。


 1.敵のデータを用意する

 今まで、敵の種類は1つでした。そして、敵のデータは毎回x方向、y方向それぞれに何ドット動かすかを決めた配列enemvdx , enemvdyだけでした。単純に考えれば、このデータを増やすだけの話です。ところが、プログラム中に書いている数字で、敵の種類によって変えなければならないものがいくつかあります。そこで、これらの数字をデータ化し、1つのファイルにまとめて書くことにします。ファイル名はenedata.asとし、メインとなるファイルsample15.as内でインクルード(#include "enedata.as")することにします。

 まずはenemvdx , enemvdyです。今敵を8種類に増やそうとしているのですから、この配列も8組必要です。そこでこれを2次元配列にします。要素の数は敵の種類によって違いますから、この数を配列変数nenemvに入れることにします。
    ; 動きのパターン
    dim enemvdx,8,32
    dim enemvdy,8,32
    dim nenemv,8
 第2引数が敵の種類を表します。

 次に、敵の大きさや耐久力のデータですが、これらを敵の種類ごとに書いても構いませんが、ここでは敵の階級というものを定義します。階級が同じであれば大きさや耐久力も同じとします。
    ; 階級
    dim eneclass,8

 絵も敵の種類によって違います。そこで、アニメーションパターン(絵のファイル中の座標)を配列変数にします。
    ; アニメーションパターン
    dim eneanimx,8,4:dim eneanimy,8,4
    dim enedmgx,8,4:dim enedmgy,8,4
    dim neneanim,8
  アニメーションパターン
 eneanimx , eneanimyは、それぞれのパターンの座標です。(animはanimationの略です。)ここでは、いくつかのパターンを順々に表示することにします。自機の方に向かって傾く、といったタイプのアニメーションは扱いません。最後のパターンを表示したら、最初に戻ります。
 上の図の場合、パターンは4つです。この数を入れる変数をneneanimとします。
 enedmgx , enedmgyは敵がダメージを受けている時のパターンの座標です。(dmgはdamageの略です。)eneanimx.n.0 , eneanimy.n.0に対応するのがenedmgx.n.0 , enedmgy.n.0、eneanimx.n.1 , eneanimy.n.1に対応するのがenedmgx.n.1 , enedmgy.n.1、……です。

 以上で宣言した配列変数に従って、例えば今まで出てきた茶色の敵のデータを書くと、以下のようになります。種類は0番とします。
    ; 敵0 ザコ 茶
    enemvdx.0.0=-8:enemvdy.0.0=4
    enemvdx.0.1=-6:enemvdy.0.1=4
    ・
    ・
    ・
    enemvdx.0.15=-6:enemvdy.0.15=4
    nenemv.0=16
    eneclass.0=0
    eneanimx.0.0=$80:eneanimy.0.0=0
    eneanimx.0.1=$A0:eneanimy.0.1=0
    eneanimx.0.2=$C0:eneanimy.0.2=0
    eneanimx.0.3=$A0:eneanimy.0.3=0
    enedmgx.0.0=$60:enedmgy.0.0=$20
    enedmgx.0.1=$80:enedmgy.0.1=$20
    enedmgx.0.2=$A0:enedmgy.0.2=$20
    enedmgx.0.3=$80:enedmgy.0.3=$20
    neneanim.0=4


[目次へ][前へ][次へ] inserted by FC2 system