プレイ日記
ケイン KEIN.HORGAN
シンプルRPG製作日記 22日目 データを定義する「READ/DATA 命令」
7そうだね
プレイ済み
返信[1]
親投稿
ケイン KEIN.HORGAN
今回は READ/DATA 命令を使用してプログラムを改修します。 まずは READ 命令と DATA 命令についてです。 この二つの命令は、セットで使うことで色々なデータを一度に設定する為に使えます。 特に、文字列データと数値データを同時にセットしたい時などに効果を発揮します。 が、まずは使い方の例として一番簡単な単純読み出しについて実装しました。 まずデータ定義部ですが、327行目からがそれになっています。 ここはプログラムの最後の部分になっています。 データはプログラムのどこにおいても構わないのですが、一番最初か、または一番最初においておくことで、後の修正が楽になることが多いため、このように最後においています。
1そうだね
プレイ済み
返信[2]
親投稿
ケイン KEIN.HORGAN
ここで定義したデータを取得する部分が46行目~になります。 このプログラムでは、46行目で“初めて“READ命令が実行されるわけですが、この時、DATA命令で“初めて“定義されたデータが取得できます。
1そうだね
プレイ済み
返信[3]
親投稿
ケイン KEIN.HORGAN
このプログラムでは、327行目で初めてDATA 命令が出てきますので、そこで定義されているデータが取得できるわけです。 その結果、変数DAT$ には、327行目の文字列データ、つまりマップの一番上の行が代入されます。 では、47行目はどうでしょうか? ここでは、"2回目"にREAD 命令が実行されます。 そうすると、"2回目"にDATA 命令で定義されたデータが取得できるわけです。
1そうだね
プレイ済み
返信[4]
親投稿
ケイン KEIN.HORGAN
このようにすることで、前回までのように直接 MAP$[] 配列に文字列を代入していたのと同じ結果になります。 が、これではちょっと面倒に過ぎます。 FOR ループを使うことでぐっと手間が減りますが、これよりさらに楽にする方法を次回は検討します。 (具体的には、PUSH 命令を使用する事でマップサイズをプログラム上で指定しなくてもいいようにします) ※もしDATA 命令で定義されているデータと、READ 命令で指定した変数の型が異なる場合(文字列データを定義しているのに、READ 側では数値変数を指定していた、等)や、READ 命令と DATA 命令の数が一致しない場合、エラーが発生する事に注意が必要です。
1そうだね
プレイ済み