Making「ASALT」その2

Home PC-6001mkII Program etc

 このページでは、機能の肉付けをする過程を書いています。

Making「ASALT」 Top


2009/02/14:キー入力
 マップの中を自由に移動させるべく、キー入力処理を実装する。とりあえずは上下で前後移動、左右で左右回転という事でキーを割り振って見る。

 左右回転は方向データを変える処理だけなのであっさり実装。上下移動は、現在向いている方向に1キャラ分移動する処理となるが、必要なデータは揃っているので淡々と実装する。

 さて実行。やった、動き回れるようになった!

画面

 ただ、しばらく動いていると、なにやら違和感を感じる。あ、マップが左右反転しているんだ。直さなきゃなぁ、後日。

2009/02/21〜22:マップ修正
 2/14で左右反転していると気づいた件の修正を行う。

 原因はよくわからないが、ようするに方向データを左右反転させればいいのだろう。という事で方向データを修正する。
 さて、ついでに画面をもう少し豪華にしようか。敵キャラを模した模様を追加してみる。

画面

 と、ここで先ほどの修正が誤りだったことに気づく。マップデータの元になっているBMPデータはデータ化する前に上下反転しないといけないんだった。原因がわからないまま修正を行うと、こんな目にあうから気をつけよう。

 本当の原因がわかったので、方向データを元に戻し、新しいマップデータを反映させる。

画面

 よし、こんな感じだ。

2009/02/22:バック転回
 マップも修正したので、回転の中心位置に自機を描画し、またしばらくマップ内を動き回る。と、またもや違和感を感じる。

 一つは、回転軸が思ったより上にある事、そしてバック時の転回方向が異なる事。そういえばバックだと転回方向を逆にしないといけないんだった。

 以上、2点の修正を行う。

画面


2009/03/08:二画面切り替え
 回転の中心に自機を描いた事で、画面のちらつきが気になるようになった。しかたない、そろそろ二画面切り替えを実装するか。

 二画面切り替え自身はこれまでも何度か行った事があるので、過去モノから処理の大半を持ってきて割とあっさり実装できた。

 これに伴い、ページ数も2から3に変更する。なぜ二画面切り替えなのに3ページ分必要かというと、面データを0000H-4000Hに置いた関係上、最終ページが使えないためだ。

 面データ自身も、16KBのままだと読み込みが遅いので、最終的には圧縮したいところだが、それはまた後の話。

2009/03/29〜04/0x:コリジョン
 最低限オフ会に出せそうな所まで出来たと安心していたら、また放りっぱなしになっていた...。これでもはじめにやろうと思っていた事の3割弱くらいだろうか。できれば 6〜7割位のデキには持って行きたい。という事で、またぼちぼちと肉付けをしていく。

 まずは、壁への辺り判定だ。自機の位置にある面データの色は、この時点で簡単に取り出せるので、色番号と当たり判定コード(0なら何もなし、1なら壁 等)の対応テーブルを作成する。

 3/29時点では、対応テーブルをねじ込むためにマシン語開始アドレスを変更し、後日判定処理を実装する。壁判定だったら、移動後の時期の位置を保存しない(移動キャンセル)っと。

 早速試してみる...よし、壁の手前で止まるようになった。

2009/04/0x〜04/07:ジャンプその1
 当たり判定の処理ができるようになったので、今回一番やりたかった処理に移る。ジャンプゾーンだ。

 当たり判定のお膳立てとなる当たり判定の対応テーブルはもうあるので、この値が80Hなら自機の状態を「ジャンプ中」にして、「ジャンプ中」専用処理に進めばいいだろう。ちなみに80Hにしたのは、対応テーブルのアドレスと一致させるためだ。

 ジャンプ時に使う拡大縮小の倍率データも必要なので、割と適当に作成する。

 いよいよテスト...

画面

 ジャンプした!!嬉しくて、しばらくぴょんぴょんする。

 あ〜でもジャンプゾーンの上で動くと連続ジャンプしてしまうな。あと、ジャンプ用の拡大縮小データも、もう少しそれらしく作りこもう。

2009/04/08:ジャンプその2
 さて、まずはジャンプ時の拡大縮小データの調整だ。「ASSAULT」のプレイ動画と見比べてデータのあたりを付けていく。

 そしてもう一つ、連続ジャンプの抑止だ。ジャンプを終えて時期が地面に着いたときに「ジャンプ終了」を表す自機のステータスを追加する。
「ジャンプ終了」状態の時にジャンプゾーンに居た場合はジャンプ処理に移らないようにし、ジャンプゾーンから外れたときに自機のステータスを通常状態に戻せば良い。

 ...うんうん、ジャンプはこんなところだろう。


その1 Making「ASALT」 その3