「MAP16 EDITOR」の最大のメリットは、「MAP8 EDITOR」に比べ、同じメモリ容量で4倍の広さのマップを表示できるところです。
あと、通常ゲームの基本となる16×16キャラクタを配置するのが「MAP8 EDITOR」では、かなり面倒ですが、「MAP16 EDITOR」だと簡単です。
前回、「MAP16 EDITOR」で作成したデータの、全画面キャラクタスクロール(16ドット)版のサンプルを公開しました。
そのサンプルでも、スクロールしない画面切り替え型のパズルゲームや、アクションゲーム等には問題なく使えます。
ただ、やはりドラクエタイプのロールプレイングゲームが作りたいと思った時、最低でも1FONTスクロール(8ドット)であって欲しいですよね。
と言う訳で、今回は表示範囲指定可能な8ドットスクロール版のサンプルを公開します。
「M16SMPL2.BAS」【ダウンロード】
自作プログラムに組み込むには、下記の部分が必要です。
行番号 | 内容 | 説明 |
70 | MAP16SC8.BIN | FONT単位マップ表示マシン語プログラム |
160〜230 | マップ表示値指定 | 画面に表示する際の座標と、表示する縦横幅、マップ全体の縦横幅、表示する左上の座標を指定 |
300 | マップ表示サブルーチン | マップ表示値を指定し、300行のサブルーチンをコールするとマップを表示するサブルーチン |
8ドットずらして表示するためには、各アドレスに任意の値をセットしてサブルーチンコールして下さい。
方向 | アドレス | 設定値 |
上 | &HC004 | &HFF |
右 | &HC005 | &H01 |
下 | &HC004 | &H01 |
左 | &HC005 | &HFF |
このプログラムでは、最も時間のかかるであろうマップ表示部分をマシン語で組んでいます。
「MAP16SC8.BIN」(70行)
下記機能を提供します。
実行アドレス | 機能 | 詳細 |
&HC0E8 | マップ表示 | 指定されたマップ表示値から表示される先頭アドレスを算出しマップを表示する 最大16キャラクタ×12キャラクタ |
マシン語アドレスを変えたい人用に、MAP16SC8.BIN作成用のBASICプログラムを用意しました。
起動すると、MAP16SC8.BINを作成します。
「MAP16SC8.BAS」【ダウンロード】
いやはや、なかなかに苦労しました…。
昔に「MAP16 EDITOR」で作成したマップデータを使って作っていたゲームは、全画面のドラクエタイプのロールプレイングゲームでした。
だから気付きませんでしたが、上下スクロールで8ドットずらして表示した時、表示範囲の上下に残りの8ドット分が表示されてしまうバグがなかなか直らず、苦労しました。
おかげでマップ表示のロジック結構長くなったなぁ…。
まぁ、あまり時間かけてる余裕がなかったので、短縮化は図っていません。