第11章で学んだ「ボタン入力待ちループ」を覚えていますね?
もし忘れていたなら、復習してから続きを読んでくださいね。
「ボタン入力待ちループ」は何回も使いますよね?
その度に、「全く同じ内容を入力する」のでは大変ですよね?
そのような繰り返す命令群は、簡略化することで楽に入力できます♪
前回のプログラムを保存していた人は、簡易ロードしてからプログラムを追加してください。
保存していなかった人は、右の画像のように入力してください。
@BWL ~ RETURN までのプログラムをサブルーチンと言い、
GOSUB @BWL という命令によって呼び出します。
GOSUB から @BWL へ飛び、RETURN から元の行へ戻ります。
第8章で「END の後にプログラムを入力する場合がある」と言ったのを覚えていますね?
このサブルーチンなどがその例で、プログラムが上から下へ読み込む都合上、END の後にする必要があるのです。
繰り返しの簡略化には、サブルーチン以外にも方法があります。
ユーザー定義命令を使って、繰り返す命令群を簡単にまとめることができるのです。
先ほどのサブルーチンを入力したプログラムを簡易セーブしておくと便利です。
簡易セーブが済んだら、右の画像のようにプログラムを追加してください。
DEF BWL ~ END という命令群がユーザー定義命令です。
サブルーチンの命令群と比べてみると、全く同じ内容だと分かるでしょう。
命令の内容は同じですが、呼び出し方が違います!
GOSUB は使わず、BWL という文字だけで呼び出すことができます。
また、サブルーチンとは違い、プログラムの最初のほうに入力します。
それは、プログラムが上から順に読み込まれるからで、ユーザー定義命令を使う前に定義しなければならないからです。
上のプログラムではサブルーチンを使用していないので、END の後のプログラムは不要です。
ユーザー定義命令との比較をしやすいように残しておいただけですので、消してしまっても問題ありません。
サブルーチンを使う方法でも、ユーザー定義命令を使う方法でも、どちらでも好きな方法で繰り返しの簡略化ができます♪
ここまでの内容を理解できたなら、次のプログラムもすぐに使えると思います。
ノベルゲームやアドベンチャーゲームでよくあるようなメッセージを表示してボタンの入力を待つプログラムの簡易的な例です。
Aボタンが押されたら次のメッセージを表示するわけですが、特定のボタンが押された場合には別の操作をすることができるプログラムです。
Bボタンが押されたらメッセージウインドウを隠したり、Yボタンが押されたらシステムを変更したり…というように、押されたボタンで処理を変えたい場合に使います。
システムの変更などは作品の内容により変化するため、ここでは実装していませんが、このプログラムに追加することでそれらの機能も可能になります。
ここでは、Aボタンの入力を待ちながら別の処理も行うプログラムの基本を学ぶのを目標としています。
前の画像の通りに入力したプログラムを実行(RUN)すると、この画像のように表示されます。
普通なら ( ) で囲まれた部分は表示されなく、操作説明で確認する内容ですが、今回は分かりやすくするために表示しています。
このようなプログラムを繰り返し入力することで、ノベルゲームやアドベンチャーゲームの基本的なシステムを作ることができます。
メッセージウインドウの隠し方はウインドウの表示方法により異なりますし、文字の表示速度やウインドウの透過度などのシステムもそれぞれの作品により異なりますので、これが正解というような決まりはありません。
それらの作り方は、スプライトなどの基本を学ぶことで分かるようになってくると思います。
とりあえず、この後の章へ進み、プログラミング能力をアップさせることを優先してみてください!(`・ω・´)ゞ