変数の使い方


概要

FS5 のシーナリには「内部変数」というものがあり、 これをうまく使うことでいろいろな表現を行うことができます。

変数を使う場合は IfVarAnd, IfVarRange などの命令を使います。

どのような変数があるかは、SCASM のドキュメントや FS5STRUCT のドキュメントを参照してください。


夜になったらビルをライトアップしたい

この場合は以下のようにします。
IfVarRange( :no_light 28C 0 3 )

; ここにビルをライトアップする命令を書く

:no_light
ここの IfVarRange 命令は、変数番号 28C の変数の値が 0 から 3 までの範囲 内にあるときに no_light に Jump する、という意味です。 変数番号 28C は Time Of Day 変数で、0 が日中、2 が明け方・夕方、3 が 夜を表します。ですから、この例では夜の場合だけライトアップを行う 命令が実行されるわけです。

シーナリが Dense 以上の時だけオブジェクトを表示したい

この場合は変数番号 346 を使います。この値が 3 以上のときだけ オブジェクトを表示するコードを通るようにします。

アニメーションするオブジェクトを作りたい

この場合は変数番号 282 を使ってください。これはランニングビットタイマ で、0000.0000.0000.0001 から 1000.0000.0000.0000 まで1つのビットが6 秒かけて移動するようになっています。これと IfVarAnd 命令を組み合わせれ ば良いのです。

これを使えば、点滅するライト、回転するオブジェクトなどを作る ことができます。

SCXMPL に、この変数を使ったサンプルがいくつかあるので 参照してください。


給油所を作りたい

以下の変数を使います。 最初の2つを使って、機体が給油所にいるかどうか判定し、 給油所内にいる場合は3つ目の変数を 1 にセットしてください。 (SetVar 命令を使う)。これで、機体が給油所に入ると燃料が 満タンになります。

SCXMPL に付属の FUELBOX.SCM にサンプルがあります。


[次ページ] [目次]