TACS for Flash 講座#10 「ユーザー関数について」
ここではユーザーが自由に作成できるユーザー関数について説明します。
何度も実行する一連の動作をまとめておけば、そのまとめたものを命令するだけで一連の動作を行ってくれるようになります。
このまとめたものを、TACSではユーザー関数とよびます。
それでは、その使用方法を説明致しましょう。
まずは SET_FUNC 〜 ENDFUNC 命令でユーザー関数を設定する
さて実際の使用例としてサンプルのシナリオソースをみてみましょう。
下記リンクのシナリオソースをテキストエディタで開いて下さい。
http://atelier-c.fiw-web.net/tacs_samplegame/game05/tacs.avg
- ■142〜182行目
-
SET_FUNC 画面初期化 と記述されている箇所が、ユーザー関数の名前を設定している箇所です。この記述がある行から ENDFUNC と記述されている行までの一連の処理が 画面初期化 という名前のユーザー関数として定義されます。//======================================== // ここより下はユーザー関数(ファンクション命令)です //======================================== set_func 画面初期化 PIC 30,library/logwindow03.swf FRAME_POS 1,640,480 pic 1,library/messagewindow16.swf; //メッセージウインドウ設置 "",1 FRAME_POS 1,0,340; PIC 0,library/selectwindow13.swf; //選択肢ウインドウ設置 FRAME_POS 0,20,20 PIC -1,library/nextbutton08.swf; //ポーズボタン設置 PIC 2,data/swf/blank.swf PIC 3,data/swf/blank.swf PIC 4,data/swf/blank.swf PIC 5,data/swf/blank.swf PIC 6,data/swf/blank.swf BACKLOG_START endfunc set_func 由紀子ちゃんを表示 FRAME_POS 5,180,70 ?LOVE<=10;PIC 5,data/cg/char/yukiko04.png ?LOVE>=11;?LOVE<=30;PIC 5,data/cg/char/yukiko07.png ?LOVE>=31;?LOVE<=50;PIC 5,data/cg/char/yukiko02.png ?LOVE>=51;?LOVE<=70;PIC 5,data/cg/char/yukiko01.png ?LOVE>=71;?LOVE<=80;PIC 5,data/cg/char/yukiko03.png ?LOVE>=81;?LOVE<=99;PIC 5,data/cg/char/yukiko12.png ?LOVE>=100;PIC 5,data/cg/char/yukiko06.png endfunc set_func 好感度再表示 ?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 endfunc //========================================
つまりこの142〜182行目の記述で、 画面初期化 と 由紀子ちゃんを表示 と 好感度再表示 の、三つのユーザー関数を設定している事がわかると思います。
これらの記述がシナリオファイル(〜.avgファイル)のどこかに記述されていれば、シナリオのどこからでもこの一連の処理を呼び出す事が可能となります。
このサンプルでは、最後にまとめてユーザー関数の表記をしていますが、製作者のわかりやすい場所に記述して頂いて問題ありません。
- ■14〜19行目
-
設定しておいたユーザー関数名 画面初期化 の使用例です。#>オープニングメニュー //---------------------------------------- #オープニングメニュー func 画面初期化
「オープニングメニュー」のシーンにジャンプした直後に、このゲームで使用する基本的なデータを画面に読み込みさせています。
画面初期化 のユーザー関数の内容は、文字通りゲームで使用される基本的なデータを画面表示する命令達を記述してありましたので、この func 画面初期化 という表記だけで全ての初期化動作をおこなってくれます。
あとはその名前で操作を一挙にゃってしまうという、便利な命令なわけですね。
ちなみにサンプルでは…
「画面初期化」関数 → このゲームの基本インターフェイスを一挙に読み込み直し
「由紀子ちゃんを表示」関数 → 好感度のフラグ(LOVE)の値によって由紀子ちゃんの画像を表示しなおす処理を一言でできるようにした
「好感度再表示」関数 → 好感度のフラグ(LOVE)の値を画面に反映させる処理を一言でできるようにした
…と、このような事をユーザー関数でできるように設定しております。
■今回解説につかったサンプルゲーム