変数とは:Almightに触れる7
前回、選択肢部分を触りましたが、シナリオの分岐は選択肢以外にも変数を使う方法があります。
今回はそのやり方で進めてみようと思います。
使用する画像はフリー素材をしようします。
びたちー素材感 URL http://www.vita-chi.net/sozai1.htm
ゆんフリー者新素材集 URL http://www.yunphoto.net
変数の使い方はAlmightのチュートリアルに書いてあります。
一部を抜粋すると
セーブ・ロード可能な普通のゲーム変数を f変数 といいます セーブ・ロードと関係なく、常に値を保持できるシステム変数 sf変数 といいます 一時的に値を置けるだけの一時変数(ゲームの終了で消える) tf変数 といいます
と書かれています。
f変数は、ゲームをロードしたときにも保持されたままになる変数で、選択肢の変数なんかはf変数を使います。
sf変数は、初期化しないかぎり値が保持され続ける変数なので、CGモードや回想モードのフラグとして使うことが多いと思います。
tf変数は、その場限りの変数です。ゲームの演出に変数を使うときなんかに使うことが多いのではないでしょうか。
というわけで、今回はf変数を使ってシナリオの分岐をやろうと思います。
変数に値を入れるときは eval タグを使います。
@eval exp=" "
という形になります。
exp=" " のダブルクォーテーションの中に変数の値を入れていきます。
例えば
@eval exp="f.sentaku=1"
という具合に書くと f.sentaku という変数名に 1 が入っていることになります。
そしてそれを if文判定することでシナリオの分岐を行うことができます。
基本的な書き方は
@if exp=" " 処理 @endif
という具合です。
先ほどの f.sentaku=1 という部分を使うと
@if exp="f.sentaku==1" 処理 @endif
となります。
イコールが一つのときは値を代入しますが、イコールが二つある場合は比較を行うので、今回は f.sentaku に 1 が入っていたら、処理を行うという意味になります。
これが実行されたときには、他のシナリオに飛んでほしいわけです。
そのために、選択肢のときに使ったように、ラベルを使ってシナリオへジャンプさせます。
それには jump タグを使います。
@jump storage=" " target=" "
というの具合です。
storage はファイル名を入れ、違うファイルにジャンプします。
target にはラベル名を入れ、飛んだ先のファイルの指定したラベルにジャンプします。
現在のファイル上で、ラベルにだけ飛びたいときは @jump target=" " とだけすれば大丈夫です。
では実際に組み合わせていこうと思います。
今回は選択肢1が選ばれたときに、他の部分にジャンプするようにしてみようと思います。
選択肢1でジャンプする *select1 の部分に
*select1 選択肢1です。[c] @eval exp="f.sentaku1=1" ラベル名 *sentaku1 にジャンプします。[c] @if exp="f.sentaku1==1" @jump target="*sentaku1" @endif @s
と書きます。
そして他の場所に
*sentaku1 ラベル名 *sentaku1 にジャンプしました。 @s
と書きます。
これで選択肢1が選ばれた後、*sentaku1 のラベルにジャンプするようになりました。