Link Search Menu Expand Document

** 内容はSRC2.2.33のものです **

Localコマンド

サブルーチンローカル変数を作成

書式1

Local var1 var2 …

書式2

Local var = expr

指定項目 説明

var作成するサブルーチンローカル変数の名称

expr作成するサブルーチンローカル変数の初期値を指定する式

解説

特定のサブルーチンでのみ有効なサブルーチンローカル変数 var を作成します。指定した変数はLocalコマンドが実行されたサブルーチン内やイベント内でのみ有効になり、他のサブルーチンやイベントで使用する変数名と重なっても他の変数の値を書き換えることがありません。たとえLocalコマンドが実行されたサブルーチン内やイベント内から呼び出されたサブルーチン内で同名の変数を参照しても、その変数はLocalコマンドで作成した変数とは別物と見なされます。

書式1の場合、var は複数指定可能です。書式2の場合、作成するサブルーチンローカル変数の数は1つだけに限定されますが、サブルーチンローカル変数の初期値を式で指定することが出来ます。

配列をサブルーチンローカル変数として作成する場合、個々の要素に対してLocalコマンドを実行する必要はありません。変数名をvar に指定すれば個々の要素はすべてサブルーチンローカル変数と見なされます。ただし、配列の要素数が膨大(数百~数千)になる場合は実行の低下時間を招くことがあります。このような場合はサブルーチンローカル変数を使うのは避けた方がいいでしょう。

Localコマンドで生成出来るサブルーチンローカル変数は最大2000個までとなっています。(配列の要素はそれぞれ別個の変数として換算されます)

#メッセージ中にロイド艦長の乗るユニットと宇宙怪獣の距離×100
#の数値を表示
Talk オペレーター
敵宇宙怪獣、距離$(100 \* Call(ユニット間距離,ロイド艦長,宇宙怪獣ガルダ))まで接近! 艦長!!
Talk ロイド艦長
まだだ、もっと引き付けるんだ!
End
Exit
#ユニット間の距離を求めるサブルーチン
ユニット間距離:
#サブルーチンローカル変数xdiff,ydiffを作成
Local xdiff ydiff
#X座標の差とY座標の差を計算
xdiff = Abs(X(Args(1)) - X(Args(2)))
ydiff = Abs(Y(Args(1)) - Y(Args(2)))
#両方の座標軸の差からユニット間の距離を求め、サブルーチンの戻り値として返す
Return (xdiff + ydiff)