Making「ActBarrier2」その4

Home PC-6001mkII Program etc

Making「ActBarrier2」 Top


2018/02/11:背景色変更
 多色化の一環として、背景色を黄色から緑に変更する。

 前作ActBarrierからの仕様ではあるが、キャラクタ重ね合わせの簡素化のため、敵キャラクタはドット情報(6bit)と+色情報(2bit)を区別せずに、描画先とのOR演算で表示している(ただし、自機のみ色情報部分を緑固定にして表示)。

 前作だと、敵キャラクタが黄色のみだったので問題はなかったが、異なる色の敵キャラクタを表示することで問題が浮き上がる。
 具体的には、色のOR演算により以下のような色の変化となる。緑が一番弱く、続いて黄と青が同位、そして赤が一番強い。また、黄と青が重なった時は赤に変わる。

画像

 背景色が黄色の場合、OR演算の片方は黄色になるため、結果的に黄か赤のキャラクタしか表示できないことになる。これまでと同じ処理で緑、黄、青、赤の4種類のキャラクタを表示させようと思ったら、背景色を緑にするしかない。

2018/02/11:敵の管理データ構造(Ver.4-Final)
 これまで、敵番号(NO)から個別移動処理へのアドレス計算をして移動ルーチンに飛んでいたが、出現中は基本的に変わらない移動ルーチンのアドレスを毎回求めるのは処理的に無駄ではないだろうか?
 あと、X,Y移動量のデータは固定で必要だろうか?一直線に等速で動かさない場合は、ワークにした方が、柔軟性があるのではなかろうか?

 ということで、また敵の管理データを変更する。
Ver.3NOSPHPYXCHWVWK1WK2
Ver.4MV
(2バイト)
SPHPYXCHWK1WK2WK3

 これが、最終的に確定した管理データ構造となる。

 すでにいくつかの敵キャラは処理を作っていたので、ぼちぼちと変更していかなきゃな。

2018/02/12:敵作成(8,9種類目)
 画面を横に横切りつつ、自機を追尾する敵を出す敵8を作成する。

 追尾する敵は、最初はゆっくり自機に近づき、時間とともに近づく速度が速くなっていくようにする。

画像

 一応、当初思った通りの動きにはなったが、倒さずに粘ると間延びするな。もう少し改良の余地ありかも。

2018/02/17:敵作成(10種類目)
 無敵の敵を試作する。

 自機が左半分に居たら右から、右半分に居たら左から出現し、そのまま画面を横切る。移動毎に毎回HPを最大に戻すことで、実質無敵となる。

画像

 他の敵と組み合わせると、良くなる可能性はあるな。

2018/02/22:ボス多色化
 2体目のボスグラフィックを作っている時にふと思った。

画像

 いままで黄色一色でキャラクタを作っていたけれど、せっかくキャラクタデータ生成を多色に対応させたのだから、もっと色を付けた方が良いのではないか?

 ということで、色付きキャラクタを作成。めずらしく、ほぼ一発で良いのができあがった。これは1面ボスにしよう。

画像

 他のボスグラフィックもこういうネオン風で統一した方が良いかもしれない。言うは易しだけど。

2018/03/12:ボス攻撃作成(ボス1)
 1面ボスの動きを実装する。

 見た目的に特攻キャラなので、特攻をメインにした動きにするか。1面ボスの想定なので、簡単に対処できるように以下の動きにする。
  • 画面上部で左右往復
  • 定期的に、ボス中央位置から敵1を出す
  • 一定時間たつと、少し溜めて画面下まで特攻する
 画面下にいれば特攻の溜めを見てからでも避けられるので、こんなところだろう。ただ、特攻の横位置があまりばらついていないので、特攻周期についてはもう少し調整が必要だな。

2018/03/17:ボス攻撃作成(ボス2)
 続いて2面ボスの攻撃を仮作成する。

 ボス自身は、画面中央付近まで移動した後はじっと動かない。代わりに、時計回りに回転する敵を大量に出現させる。

画像

 動きとしては、概ね思った通り。見た目のインパクトもある。ではあるのだが…
 見た目と裏腹に、なんか簡単すぎる。例えば、右側中央のエリアは上からしか敵が来ないので、容易に迎撃できてしまう。

 敵の動きについては、考え直す必要がありそうだな。

2018/03/18:キャラクタ展開用領域の再検討
 キャラクタ数が多くなった時のことを、もう少し真面目に考えることにする。このまま、定義キャラクタの個数に比例してキャラクタ展開用領域が増えるのをなんとかしたい。

 これまで、プログラム開始時に全てのキャラクタに対してキャラクタデータの展開を行う事を考えていたが、全部一気に展開する必要はないのではないか?面内で登場する(登場できる)キャラクタ数は限られるので、面毎に必要となるキャラクタだけ展開すれば、キャラクタ展開用領域を抑えられそうだ。

 全ての面で表示する自機とオプションは面に関わらず展開しておくとして、敵キャラクタは面毎に使用するキャラクタデータのみ展開するようにする。とりあえず敵キャラ展開用に16キャラクタ分あればいいかな、こんな感じで。

画像

 こうすることで、面毎に展開する領域のサイズが固定になる。

 ひとまずこれでやってみるか。

2018/03/18:敵グラフィック作成(5,6種類目)
 これまで仮だった5,6種類目の敵のグラフィックを入れる。初めての黄色以外の敵キャラだ。

 敵出現データをいじって、実際に表示させてみる。

画像

 緑キャラクタがあっても、特に違和感はないようだ。むしろ少しカラフルになって良い感じだ。


その3 Making「ActBarrier2」 その5