メインコンテンツへスキップ

変数

Mahiru約1分

変数

注意

変数システムを使用する前に、シーンジャンプと分岐ジャンプの使い方を理解しておかないと、混乱する可能性がありますので、注意してください。

変数の使い方

変数を設定する:

setVar:a=1; // 数字を設定可能
setVar:a=true // 真偽値を設定可能
setVar:a=キャラクター名 // 文字列を設定可能

乱数を設定する場合は、random() を使用してください。

setVar:a=random();

乱数は0から1までの数字になります。乱数の範囲を指定したい場合は、算術演算を行う必要があります。例えば、5から10までの乱数を設定したい場合は、次のように演算する必要があります。

setVar:a=5+a*5;

以前に他の変数を定義している場合は、変数を設定する際にそれらを使用することもできます。

setVar:a=1;
setVar:b=a+1;

条件付き実行

文の後に -when=(condition) パラメータを追加すると、現在の文を実行するかどうかを条件で判断することができます。

例えば:

setVar:a=1;
; // a が 1 より大きい場合、シーン 1 にジャンプする
changeScene:1.txt -when=a>1;
; // a が 1 の場合のみジャンプする。等号演算子は == に注意
changeScene:2.txt -when=a==1;
; // a が 1 より小さい場合、上の文は実行されず、当然この文が実行される
changeScene:3.txt;

ヒント

= は代入演算子であり、条件判断には使用できません。== は等号演算子です。

どの文にも -when パラメータを追加して、実行するかどうかを制御することができます。-when パラメータと jumpLabel callScene changeScene を組み合わせることで、条件付きのフロー制御を実現することができます。

ユーザー入力の取得

getUserInput 命令を使用してユーザー入力を取得します。例えば:

getUserInput:name -title=あなたの名前を教えてください -buttonText=確認; ユーザー入力を name 変数に書き込む

ここで、title パラメータはプロンプトのテキストで、buttonText は確認ボタンのテキストです。

変数補間

{} 構文を使用して文の中で変数補間を行い、変数を文に挿入することができます。例えば:

setVar:name=WebGAL;
setVar:engine=WebGAL;
{name}: {engine} へようこそ!これは、まったく新しいウェブベースのビジュアルノベルエンジンです。;

永続変数(グローバル変数)

WebGAL の通常の変数はセーブデータに依存します。つまり、どの変数も現在のゲームシーンにのみ存在し、セーブデータに保存され、ロードデータによって復元されるだけです。

作者がマルチエンディングを設定したい場合に問題が発生する可能性があるため、ゲーム全体で有効な永続(グローバル)変数が用意されています。一度設定すると、ユーザーがすべてのデータを消去しない限り、ゲーム全体で有効になります。

-global パラメータを追加すると、永続(グローバル)変数を設定することができます。

setVar:a=1 -global;

これにより、セーブデータの読み込みによって変更されない変数が設定されます。

使用例:

jumpLabel:turn-2 -when=a>0;
setVar:a=1 -global;
1周目;
changeScene:一周目ストーリー.txt;
label:turn-2;
2周目;
changeScene:二周目ストーリー.txt;