TACS for Flash 講座#11 「フラグ同士の計算や大小の判断について」


ここではフラグ同士の計算や、値の大小の判断の仕方について説明します。

フラグの値を計算する事ができると、オン・オフだけの扱いと違って、所持金や好感度による微妙な数値の差での分岐等、表現の幅が広がるのが期待できるのではないでしょうか。
それでは、その使用方法を説明致しましょう。
まずは下記リンクのシナリオソースをテキストエディタで開いて下さい。
http://atelier-c.fiw-web.net/tacs_samplegame/game05/tacs.avg



フラグ同士の計算の表記の仕方



■84、85行目

!BONUS=-8;
!!LOVE=LOVE+BONUS
フラグ同士の計算の一例です。
先頭に !! と表記すると、フラグ同士の計算だとTACSは判断します。続いて計算式を記述して下さい。
表記のルールは…
[格納するフラグ] = [フラグ1] <算術記号> [フラグ2]
となります。
使える計算(算術記号)は + - * / % の五種で、それぞれ 加算・減算・掛算・割り算・剰余算 となります。(※剰余算とは、割り算の余りを求める計算です)
計算に算術記号を使用する都合上、これらの算術記号を使用したフラグ名は、このフラグ同士の計算に使用する事ができません。ご注意下さい。

さらに特筆すべき注意点は、この計算命令はフラグ同士の計算しかできないという点です。
つまり !!LOVE=LOVE-8 というように、フラグ名のかわりに数値を直接書いての計算はできません。(…正確にはできないのではなく、この場合 8 という名前のフラグとして扱われる為)
LOVEの値を-8したい場合は、サンプルシナリオ84、85行目のように、別のフラグに増減したい値を指定し、続いてフラグ同士の計算を使って計算しなければならないわけです。
あと文字が格納されたフラグを計算に使用した場合は、NaN(エラー値)として計算されます。(※TACS自体の動作は停止しません)

なおこれらの計算時に、まだ値を指定してないフラグが使われた場合は、0の値が格納されているものとして動作します。



フラグの大小のチェックの仕方



■174〜180行目

?LOVE<0;!LOVE=0;	//フラグLOVEがマイナス数値になったら0にする
?LOVE>100;!LOVE=100;	//フラグLOVEが100を越えたら100に戻す
?LOVE<100;!DISP=  ;
?LOVE<10;!DISP=   ;
?LOVE>=100;!DISP= ;
".DISP..LOVE.%",2;
FRAME_POS 2,470,38
フラグのチェックに使用できる表記は基本の = 以外に < <= > >= の四種類が用意されていてます。
フラグの値を数字で指定している場合にのみ ?LOVE<0?LOVE>100 というような表記で、数値の大小によるフラグのチェックを行うことが可能です。

ちなみにこの174〜180行目のサンプルは、".DISP..LOVE.%",2 で、LOVEの数値を2番レイヤーに表示させる前に、
LOVEの値の桁数が少なくなりそうな場合、桁あわせ用(無ければ左詰めで表記される為)に適当な空白スペースが入るよう、空白スペース用の文字を DISP というフラグに格納する処理が書かれています。

■今回解説につかったサンプルゲーム