【 Making「ASALT」その2 】 |
---|
Home | PC-6001mkII | Program | etc |
このページでは、機能の肉付けをする過程を書いています。 |
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 → |