「変数」は、「スイッチ」と違ってゲームの作成に必須ではないのですが、これがあることでゲーム作成の幅が大きく広がります。
そこで、ここでは「変数とは何なのか?」について解説したいと思います。
まずは、次の画像を見てみてください。目の前にある宝箱の中から 5 つ開けるというミニゲームです。
宝箱を開けると、ポイントを獲得することが出来ます。
では、プレイヤーが自由に 5 つの宝箱を開けた結果、合計で何ポイント獲得するのでしょうか?
この場合、宝箱から獲得したポイントを記憶しておければ、そのポイントをすべて足して合計ポイントを出すことが出来ます。
この例でのポイントのような「数値を記憶しておくもの」が、「変数」です。
「スイッチ」同様に、「変数」はゲーム全体を通して最大で 5000 個作成出来ます。つまり、同時に 5000 個までの数値を記憶しておくことが出来るわけです。
「変数」を操作するには、イベントコマンド[変数の操作]を設定します。
選択した[操作]によって、変数に記憶されている数値がどう変わるのかを、以下の条件を例に解説します。
代入 | オペランドの数値をそのまま変数に格納します。 つまり、[変数 0001]の数値は 20 になります。 |
加算 | オペランドの数値を変数の数値に足し、その結果を変数に格納します。 つまり、[変数 0001]の数値は 30 + 20 で 50 になります。 |
減算 | オペランドの数値を変数の数値から引き、その結果を変数に格納します。 つまり、[変数 0001]の数値は 30 – 20 で 10 になります。 |
乗算 | オペランドの数値を変数の数値に掛け、その結果を変数に格納します。 つまり、[変数 0001]の数値は 30 × 20 で 600 になります。 |
除算 | オペランドの数値を変数の数値で割り、その答えを変数に格納します。 つまり、[変数 0001]の数値は 30 / 20 で 1 あまり 10 になりますから、答えの 1 が格納されます。 |
剰余 | オペランドの数値を変数の数値で割り、その余りを変数に格納します。 つまり、[変数 0001]の数値は 30 / 20 で 1 あまり 10 になりますから、余りの 10 が格納されます。 |
[操作]で取り扱える数値には、以下のものがあります。
つまり、作者が自由に指定する数値だけでなく、プレイヤーがゲームをプレイしたことによって変動する数値も取り扱うことが出来るのだと覚えておいてください。
では、最初に例として挙げたミニゲームを変数を使って仕上げてみましょう。
まず、それぞれの宝箱の実行内容は、次のように設定します。設定後、必要な数だけ宝箱をコピーして、それぞれの獲得ポイント数を変更しておきましょう。
宝箱を開けると、獲得したポイントの数値を[変数 0001]に[加算]します。そうやって宝箱を開け続けていくと、獲得したポイントが[変数 0001]に加算され続けていきますので、最終的には[変数 0001]の数値が獲得ポイントの合計となります。
また、宝箱を開けた回数を管理する[変数 0002]に 1 を[加算]します。すると、宝箱を開けるたびに[変数 0002]の数値が 1 ずつ増えていき、宝箱を 5 つ開けた時点で[変数 0002]の数値は 5 になっていますので、それ以上は宝箱を開けられないよう、「[変数 0002]が 4 以下の時」という条件分岐を実行内容の最初に設定しているというわけです。
続いて、ポイントを教えてくれる人の設定をします。
このように、宝箱を 5 回開けた時点で、ポイントを教えてくれるようにします。
そして、実行内容の設定です。
獲得ポイントの表示には、[文章の表示]の制御文字「V[n]」を使います。これは、「n 番の変数に格納されている数値を表示する」という制御文字ですので、「V[1]」ですと、[変数 0001]に格納されている数値、すなわち獲得ポイントの合計が表示されることになります。
その後、獲得ポイントが 100 ポイント以上か未満かでセリフが変わるようにしていますが、もっと細かくセリフが変わるようにしたり、報酬アイテムをもらえるようにしても良いでしょう。
●宝箱を開けるとポイントを獲得
●宝箱を 5 つ開けると、それ以上開けることは出来ない
●最後に合計獲得ポイントを教えてくれる
このミニゲームには、いくつかの改良点があります。
これらを具体的にどう改良するかについては、あえて解説しません。
これが改良するヒントです。あとは、皆さんで工夫して改良してみてください。