プレイ日記
ケイン KEIN.HORGAN
シンプルRPG改め、コンソールRPG製作日記 24日目 複数のマップを使い分ける~その1~ 「データ読み込み先を指定する[RESTORE]命令とラベルについて」
4そうだね
プレイ済み
返信[1]
親投稿
ケイン KEIN.HORGAN
※なんだかタイトルに偽りありになりつつあるので、タイトルを変更しました。 さて、今回と次回はマップ切り替えを実装しようと思います。 以前、「マップ切り替えに新規命令は使わないけど、FADE命令を使った方がそれっぽい」みたいな事を言った記憶がありますが…… 実際にそれで(今まで説明した命令だけで)やってみると、とんでもなく面倒でした。 流れとしては、 MAP_FIELD$[0] ' フィールドマップ用の配列 MAP_HOME$[0] ' 家用の配列 だとか複数の配列を用意して、順番にマップデータを読み込んで、そしてそれをさらにマップ表示用のMAP$[]配列に「今自分がどのマップにいるか」に応じて読み込ませる形になります。
0そうだね
プレイ済み
返信[2]
親投稿
ケイン KEIN.HORGAN
まあ、やっているうちに「ちょっとこれは無いな」となったわけで。 基本的には、こういうふうに「データを複数使いたいな」というときは「RESTORE」命令と「ラベル」を組み合わせて使います。 ラベルとは334行目のように「@ラベル名」(ラベル名には好きな名前がつかえます)とする事で、プログラムの任意の場所に名前をつける機能です。
0そうだね
プレイ済み
返信[3]
親投稿
ケイン KEIN.HORGAN
そしてこっちがRESTORE 命令の使い方です。 31行目のようにRESTORE 命令でラベルを指定すると、そのラベルの位置からデータを読み込めます。
0そうだね
プレイ済み
返信[4]
親投稿
ケイン KEIN.HORGAN
今回は、試しに家マップを用意しました。 RESTORE を使わない場合(つまり前回)と違い、こうすると表示されるマップが家マップになるわけです。 ……ですが、実はこれではまだ不完全です。 一度マップを読み込んだ後に、さらにマップを読み込もうとした際に、これでは不具合が発生します。 何故なら、前回読み込んだマップをMAP$[] から削除する命令がないからです。 というわけで、次回は配列の内容をリセットするコードを作成します。 ※みてわかる通り、マップ読み込み部を自作命令化しました。 こうしておくと、31行目のように1行だけで好きなマップを読み込めるようになります。
0そうだね
プレイ済み