プレイ日記
ケイン KEIN.HORGAN
シンプルRPG製作日記 13日目 (特に新しい事はしていない)
4そうだね
プレイ済み
返信[1]
親投稿
ケイン KEIN.HORGAN
さて、今日は自作命令のカスタマイズです。 カスタマイズの為に、グローバル変数を1つ追加しました。 15行目がそれです。 この変数は、「もともとはどの画面だったか」を覚えておく変数です。 そもそも今回の自作命令は、 「いちいち自作命令を呼び出す度に、呼び出す側でDISPLAY 命令をするのが面倒」 というのを解消する為に、呼び出される自作命令側でDISPLAY 命令をしよう、という流れでカスタマイズしています。
0そうだね
プレイ済み
返信[2]
親投稿
ケイン KEIN.HORGAN
つまり、「呼び出す側で行うDISPLAY 命令の指定値」を覚えておかないといけないわけです。 どういう事かと言うと、呼び出し側で、 DISPLAY 1 MSG_PRINT DISPLAY 0 というのをやる代わりに、 MSG_PRINT の1行で済ませようとするなら、MSG_PRINT の中で、DISPLAY 1 とDISPLAY 0 をしないといけない。
0そうだね
プレイ済み
返信[3]
親投稿
ケイン KEIN.HORGAN
DISPLAY 1 は、MSG_PRINT でメッセージを表示する画面を指定しているわけだから常に1 でいいけど、 (メッセージは常に下画面に表示する事にしたので) DISPLAY 0 の部分は、「メッセージを表示した後、元の画面に戻る」というつもりで 0 を指定しているので…… 仮に、「元の画面」が「下画面」であるなら、ここは DISPLAY 1 にしないといけないわけです。 でも、「元の画面」が「上画面」なのか「下画面」なのかは、MSG_PRINT の中では分からないので、グローバル変数を使って、元の画面を覚えさせるわけです。 ※自作命令に値を指定するやり方もあるのですが、今回は使いません。 グローバル変数、ローカル変数、引数…… とどんどん覚える事が増えるので。 引数、便利なのは確かなんですけどね。
0そうだね
プレイ済み
返信[4]
親投稿
ケイン KEIN.HORGAN
では、実際に自作命令をカスタマイズしていきます。 73行目からがMSG_PRINT、 84行目からがMSG_CLS です。 どちらの命令も、最初に DISPLAY 1 を追加し、最後に DISPLAY G_DISP を追加しました。 97行目に見えている、MSG_WAIT も同様のカスタマイズをしています。
0そうだね
プレイ済み
返信[5]
親投稿
ケイン KEIN.HORGAN
これらの命令は 1.まず最初に下画面に変更する(DISPLAY 1) 2.その後、メッセージの表示や消去、メッセージ送り待ち用のカーソル点滅表示などの処理本体を行う 3.呼び出し元画面に戻す(DISPLAY G_DISP) を行っています。
0そうだね
プレイ済み
返信[6]
親投稿
ケイン KEIN.HORGAN
さて、残りのMSG_LINE なのですが、これは少しだけ違いがあります。 52行目からが自作命令なのですが、他の3つでは最初に DISPLAY 1 を実行していました。しかし、今回は、 DIM DISP=G_DISP G_DISP=1 を最初に行っています。
0そうだね
プレイ済み
返信[7]
親投稿
ケイン KEIN.HORGAN
何故かと言うと、MSG_LINE 命令では、途中で(59行目)MSG_CLS 命令を呼び出しているからです。 先ほどのカスタマイズを行った結果、MSG_CLS 命令を実行すると、描画画面が「G_DISP」で指定した画面になります。 MSG_LINE 命令では、下画面で描画をしておきたいので、G_DISP が 0 のままだと面倒な事になるわけです。 しかしながら、このMSG_LINE 命令もまた別の命令から呼び出される為に作成しているため、 「MSG_LINE 命令が終わったら、元の画面に戻さないといけない」 となります。この"元の画面"とは、つまり元々のG_DISP の値の事なので、これを覚えるために DIM DISP=G_DISP としたわけです。
0そうだね
プレイ済み
返信[8]
親投稿
ケイン KEIN.HORGAN
というわけで、MSG_LINE で行うべき処理(メッセージ枠の描画)が終わったら、画面を元に戻す作業を行います。 68行目:元々のG_DISP の値は、DISP 変数に入っているので、これをG_DISP に戻してあげます。 69行目:画面指定を、MSG_LINE が呼び出される前に戻します(DISPLAY G_DISP) これで、メッセージ関連のカスタマイズは完了です。
0そうだね
プレイ済み
返信[9]
親投稿
ケイン KEIN.HORGAN
それでは、今回のカスタマイズの大本の原因である、EVENT_OPENING から呼び出してみます。 127行目からが EVENT_OPENING です。
0そうだね
プレイ済み
返信[10]
親投稿
ケイン KEIN.HORGAN
141,149行目を見てもらえれば分かると思いますが、DISPLAY 命令を使わなくてもすむようになっています。 この2行の手間を省くために、結構な改造をしたように思えるかもしれませんが…… 今後、これらの命令を使えば使うほど、ここで省いた手間の影響が大きくなるわけです。 (逆に言えば、「まあそんなに長いプログラムは作らないよ」というような時は、ここまで手間をかけて自作命令をカスタマイズしなくてもいいかもしれません)
0そうだね
プレイ済み
返信[11]
親投稿
ケイン KEIN.HORGAN
ともあれ、これでようやく上画面と下画面を使い分ける事が出来るようになりました。 次回は、使い分けを行おうと思ったキッカケである、「フォントサイズの変更」をしてみる事にします。
0そうだね
プレイ済み