Making「ActBarrier2」その3

Home PC-6001mkII Program etc

Making「ActBarrier2」 Top


2018/01/13:ボス構想
 ボスの処理について考える。

 ボスの表示だが、これは通常の敵キャラクタの処理で行おうと思う。
 仕組み上、複数の敵キャラクタを同時に動かせるように作ったはずなので、例えば縦横にキャラクタ2つずつ並べて同時に移動させれば、大きさ2倍のボスキャラを表示できるはずだ。

 とはいえ、実際に試してみないとわからないな。という事で、敵2のキャラクタを縦横2つ並べて、ボス出現部分のみ作成する。

画像

 4キャラクタ分表示されるはずだったが、なぜか2キャラクタしか表示されない。ああ、上側の2キャラクタは画面外の位置にあったので、即消えたんだな。まあ、下の2キャラクタはズレもなく動いているので、とりあえずの目的は達したか。

2018/01/15:ボス仮表示
 適当な敵キャラでは気分が乗らないので、ボスのグラフィックを仮作成し表示してみる。今度は画面外で消えないように、出現位置を少し下にして…。

画像

 よし。想定通り、表示タイミングのズレもなく表示された。
 やっぱり、グラフィックがあると違うな。

2018/01/23:ボス欠け
 ボスのHP処理について考える。

 今のところ、見た目はボスっぽくなってはいるが、実際は敵キャラが複数同期して動いているに過ぎない。当然キャラクタ毎に当たり判定があり、HPも独立している。そして当然HPがなくなったキャラクタから消えていく。

画像

 当たり判定はいいのだが、HPはさすがにボス用として用意しないとダメだろう。という事で、ダメージを与えた敵キャラクタがボスの構成キャラクタの場合は、ボス専用のHP処理を行うことにする。

 ちなみに、敵キャラクタがボスの構成キャラクタかどうかは、敵の管理用アドレスの範囲で判定する予定。ボス登場前にいったん敵がいない状態にしてから、ボス構成キャラクタを管理番号0から順に割り当てる。
 こうする事で、ダメージを与えたキャラクタの管理アドレスが4キャラクタ×10(1キャラ当たりの管理データ量)未満ならボスキャラの一部という判定ができる。

画像

 これで、ボスの一部欠けが解消した。

2018/01/24:イメチェン
 キャラクタデータを少しだけ整理する。

 現状、キャラクタ番号0〜4がオプション、5が自機となっている。
 オプションのキャラクタ番号はオプションの強さとも連動している。オプションの形態を強さ1×3つのパターンと、強さ0×2+強さ3×1のパターンにする事を想定すると、キャラクタ番号0,1,3はオプション、間の2を自機に割り当てるとキャラクタ数を1つ節約できそうだ。ということで変更してみる。

 ついでに、少し自機が大きく見えるようにグラフィックを変更する。当たり判定は変わらないが、敵に当たった時の納得感は少し上がったように思う。

画像

 自機が大きくなったことで、なんか強くなったような気がする。まあ、自機に攻撃力はないので、強くなりようがないんだけど。

2018/01/28:敵作成(7種類目)
 横方向に波打ちながら下に移動する敵7を作成する。

 こういう動きは、三角関数(cos)を使えば簡単にできるんだろうが、マシン語で1から作るには相当無理がある。
代替として、横方向の加速度を+1(またはー1)して横方向の移動量を計算する方式にする。

画像

 まあ、良い波打ち具合になった。

2018/02/10:色のドットずらし
 キャラクタグラフィックのデータ展開だが、前作ではキャラクタが単色というのもあって、ドット単位にずらしたキャラクタを生成するときも色情報は変更していなかった。

 このため、仮に左のようなカラフルなキャラクタを作った場合、現時点のキャラクタ生成処理で横に1ドットずれたキャラクタデータを生成すると、右のように一部のドット色が変わってしまう。

画像

 理論上は、キャラクタ内のどこの2x3ドットをとっても黒+1色という制限に合っていれば、色化けなしにドット単位にずらしたキャラクタデータを作成できるはず。あとはその想定を処理方法に直すだけだ。

 右に1ドットずらしたキャラクタデータ生成を考える場合、こんな感じで処理すればいいだろう。

 はじめに、仮に色情報自身もドット単位に移動させる。

画像

 1文字の範囲内で複数の色は同居できないので、1文字ごとに左右どちらかの色を採用する事になる。この判定は、1文字内の左半分と右半分にドットがあるかどうかで決める。

 左半分にドットがある場合は左側の色に従い、左半分にドットがなければ右側の色に従う。ただし、左半分と右半分の両方にドットがない場合は色情報を消す(実際には色情報0の緑にする)。

画像

 これでいいかな?まあ、考え方は合っているはずなので、例外が出たらその時に考えよう。
 縦方向も同じ考え方でキャラクタ生成処理を実装する。

 処理を作ったところで、まだ敵キャラは黄色一色のため、見た目はほぼ変わらない。ただ、よく見るとオプション周りで余分に赤に変化する部分が低減した。


その2 Making「ActBarrier2」 その4