3Dダンジョンロールプレイングゲーム第15回目です。
今回は、いよいよ3Dマップの中をウロウロできるようにします。
これが出来れば、ゴール判定付ければ3D迷路ゲームなら完成ですね。
更に上下階段付けて、「MAP8 EDITOR」で2Dマップを立体迷路にすれば、高難度迷路の出来上がりです。
では、今回はキー入力処理と言う事で、BIOSの「GTSTCK」(&H00D5)を利用します。
Aレジスタにジョイスティック番号(0:キーボード、1:ジョイステックPORT1、2:ジョイスティックPORT2)を入れてコールすると、Aレジスタに押された方向値(BASICのSTICK関数と同じ値)が入ります。
今作のキー操作は下記の通りとします。
キー | 行動 |
↑ | 向いている方向に前進 |
→ | 向いている方向に対して、右を向く |
↓ | 向いている方向に対して、後ろを向く |
← | 向いている方向に対して、左を向く |
「↑」が押された時だけ、向きに合わせて移動。
それ以外は向きを変えるだけになります。
凄く単純な操作なのでロジックも短いです。
方向は4方向なので、方向転換に下位2ビット(0〜3)のビット操作を使い、ロジックの短縮化を図っています。
移動が「↑」だけなので、正面が壁なら移動できないようにするだけなので楽です。
無駄なこと結構しているにも拘らず、3D描画が早すぎて思ったとこに停まれなかったので、1移動ごとにキーリピートをかけました。(移動後1回移動キーを離さないと、次の移動が出来ない。)
BASIC部です。
今はまだ製作途中で、値を変更することもあるので初期変数をREAD、POKEしています(500行以降)が、完成したらこれも初期値という事でファイル化し(拡張子「.INI」)BLOADします。
上中段と下段で別のフォント(上中段:ダンジョン用FONT、下段:メッセージ用FONT)を設定しています。(2023年9月13日記事参照「Laboratoryテーマ25「SCREEN2のグラフィックをFONTデータにして扱いたい」」)
ここまで「ダウンロード」
プログラムは、Laboratoryテーマ21「指定座標に指定サイズのメッセージウィンドウを開きたい」その@のサンプルプログラムに、3Dロールプレイングゲームの追加分を足しています。
今後、メッセージ表示部にメニュー選択ロジックが追加されたら、3Dロールプレイングゲーム部を後ろにズラシます。