敵キャラクタが動くようになった。
とりあえず編隊を組むところまで。以下、暇潰しに実装レベルの話を少々。
前二作にも共通しているのだが、敵キャラクタの動作には“方位テーブル”ととりあえず呼ぶところの手法を使っている。
キャラクタの位置は画面上の縦座標、横座標の2つの値で管理されていて、例えば縦座標の値を現在の値に対していくつか足してやると、その値の分だけキャラクタは下方向へ移動する、という関係がある。つまり、ゲーム中のキャラクタを動かす、というのは、この縦・横座標の値を、何らかのルールに従って足したり引いたりすることだ、と言い換えることが出来る。
さて、方位テーブルというのは、この縦・横座標の二次元値にそれぞれ足したり引いたりする移動量を、別の一次元単位である“方位”で管理する手法をいう。

<方位テーブルの例>
上に示したのは、移動量8ピクセルのときの方位テーブルの例になる。中央の赤い●が基準点(キャラクタの元の位置)であり、上下左右にそれぞれ9ピクセルの範囲を示している。緑色の枡が基準点からの縦・横座標それぞれの移動量を示し、そこに書かれた値がここでいう方位になる。
つまり、たとえば方位8というのは縦座標の移動量が 0、横座標の移動量が +8 、 のことだ、ということがわかる。

<プログラム中ではこのように表現される>
本作は32方位を採用している(ゼビモドキ、ドラコニックスロウンは16方位だった)ので、32方位×(縦+横の移動量)=計64バイトでもって、この方位テーブルを定義することが出来る。この構造の先頭アドレス(上例のラベル MOVTBL8)に方位×2バイトを加えれば、方位に対応した移動量を知ることができる。先の方位8の例で言えば、8×2=先頭から16バイト目(赤字部分)に、確かに縦0、横8の移動量が示されていることがわかる。