TACS for Flash 講座#1-2 「ユーザー関数について」


ここではユーザーが自由に作成できるユーザー関数について説明します。

何度も実行する一連の動作をまとめておけば、そのまとめたものを命令するだけで一連の動作を行ってくれるようになります。
このまとめたものを、TACSではユーザー関数とよびます。
それでは、その使用方法を説明致しましょう。



まずは SET_FUNC 〜 ENDFUNC 命令でユーザー関数を設定する



さて実際の使用例としてサンプルのシナリオソースをみてみましょう。
下記リンクのシナリオソースをテキストエディタで開いて下さい。
http://atelier-c.fiw-web.net/tacs27/samplegame/tacs27sample_avg1/tacs.avg
■1865〜1889行目

//========================================
// ここより下はユーザー関数(ファンクション命令)です
//========================================
//----------------------------------------
// 背景表示
//  cgmask ... マスクパターン
//  cgname ... 表示する画像名
//----------------------------------------
set_func 背景表示
	PIC 6,data/swf/blank.swf
	FRAME_CHANGE2 6,5
	?cgname=white;	PIC 5,data/cg/bg/white.jpg,0
	?cgname=玄関;	PIC 5,data/cg/bg/bg01.jpg,0
	?cgname=学習机;	PIC 5,data/cg/bg/bg07.jpg,0
	?cgname=タイトル;	PIC 5,data/cg/bg/title01.jpg,0
	?cgname=リビング;	PIC 5,data/cg/bg/bg06.jpg,0
	?cgname=章子私室;	PIC 5,data/cg/bg/bg12.jpg,0
	?cgname=所長室;	PIC 5,data/cg/bg/bg13.jpg,0
	?cgname=キッチン;	PIC 5,data/cg/bg/bg05.jpg,0
	?cgmask=1;MASK 5,1
	?cgmask=2;MASK 5,2
	?cgmask=3;MASK 5,3
	?cgmask=4;MASK 5,4
	?cgmask=5;MASK 5,5
endfunc
SET_FUNC 背景表示 と記述されている箇所が、ユーザー関数の名前を設定している箇所です。この記述がある行から ENDFUNC と記述されている行までの一連の処理が 画面初期化 という名前のユーザー関数として定義されます。

つまりこの1865〜1889行目の記述で、 背景表示 の、ユーザー関数を設定している事がわかると思います。

これらの記述がシナリオファイル(〜.avgファイル)のどこかに記述されていれば、シナリオのどこからでもこの一連の処理を呼び出す事が可能となります。
このサンプルでは、最後にユーザー関数の表記をしていますが、製作者のわかりやすい場所に記述して頂いて問題ありません。

■98〜100行目

!cgmask=1
!cgname=玄関
func 背景表示
設定しておいたユーザー関数名 背景表示 の使用例です。
背景表示 のユーザー関数の内容は、cgmaskとcgnameの内容を参考にして、ちらつかない画面の書き換えをするというものです。

なので…
cgmaskフラグに、画面書き換えのマスクパターンを指定。
cgnameフラグに、表示したい画像の名前を指定。

でもって背景表示を指定しています。

このように、ユーザー関数は「何度も使用する一連の命令」や「長い表記になってしまって判りにくい処理」を、一つのわかりやすい関数名にまとめておいて
あとはその名前で操作を一挙にやってしまうという、便利な命令なわけですね。

ちなみにサンプルでは…
フラグの値によって表示する画像をかえる関数を記述しているわけですが、
膨大な画像データを振り分ける命令にした場合は、そのチェックで処理に時間がかかるというものになってしまうので、それはそれで意識していくとよろしいのではないかと思われます。
■今回解説につかったサンプルゲーム