2章 作成に当たって
ここでは以下の事を説明します。
書き方の例「a0」の場合
function a0 (val){ /* セクション[a]の[0]番です */
SetMsg("TSB-SAG<br>\n startを押すと新しくゲームを始めます。<br> 前回の続きをするにはメニューからLoadを選んで下さい。"); /* メッセージを設定 */
if (val == "log") return ;
SetImage("001.gif","000.gif","title.gif","000.gif"); /*画像を設定 */
SetBGM( "043.mid" ); /* BGMを設定 */
SetButton( "start",1,"no",-1,"空白の3年間もどき",50,"FlyingImageTest",80); /* ボタンを設定 */
if (val == "skip") return 1;
DoALL();/* 設定を反映 */
return 0;
}
|
これがサンプルの「a0」です。
文法を青、関数を緑、コメントを赤に色分けをしてあります。
さて、これを1行ずつ解説していきましょう。
function (val){ /* セクション[a]の[0]番です */
まずはこの文。関数「a0」を宣言しています。
「function」は「関数を宣言します」
「a0」は宣言する関数の名前。つまり「セクション名」+「番号」ですね。
「(val)」は宣言する関数に「val」って名の値を渡すってこと。あまり気にしなくて良いです。
「{」は宣言する関数の始まりのカッコ。ここから始まると言うサインです。
「/* セクション[a]の[0]番です */」はコメントです。
多少ですが、わかりやすくありません?
ポイント:「a0」の部分。これを理解しないとシナリオはかけません。
SetMsg("TSB-SAG<br>\n startを押すと新しくゲームを始めます。<br> 前回の続きをするにはメニューからLoadを選んで下さい。"); /* メッセージを設定 */
次にこの文はwordフレームに描画する文字を設定しています。
「SetMsg」は「wordフレームへの描画文字の設定用関数」です。
ここでは「SetMsg ( " -文- " )」として、SetMsgを呼び出し、" - 文- "を渡しています。
SetMsgは通常文を表示するのに使います。また、これに似た物に「SetSay」があります。細かい事は次の関数の説明を見て下さい。
「"TSB-SAG<br>\n st」…「adを選んで下さい。"」はSetMsgに渡す値(ここでは文)です。
SetMsgは引数(渡すべき値)として文を取ります。詳細は次のところで。
if (val == "log") return ;
この文はver1.1ぐらいで実装予定のログ機能用です。
今は書かなくても良いのですが、実装したときに書き足すのが面倒なので書いてあります。
一応書いといた方が後々楽です、多分。
「if」は「もしも」
「(val == "log")」は「「val」と「"log"」が同じならば」
「return ;」は「リターン(関数処理の終了)をしろ」
ちなみにもしかしたらここで何か値を返す事になるかも・・・
SetImage("001.gif","000.gif","title.gif","000.gif"); /*画像を設定 */
この文はimageフレームの画像を設定しています。
「SetImage」は「imageフレームの描画画像のurl設定用関数」です。
「SetImage ("","","","")」としてSetImageにurlを渡しています。
このurlは純粋なurlではなく、ショートカットを含ませる事ができます。(後でSetImageと一緒に説明)
渡してる値はそれぞれBGimage、Limage、Cimage、Rimageに設定する値です。
「"001.gif"」はBGimage(1つめの引数)の場合は「bgimage/001.gif」、
L・C・Rimage(1~3つめの引数)の場合は「charaimage/001.gif」となります。
なお、「"000.gif"」はデフォルトで透明の画像(Gif89aファイル)にしてあります。
これは変えない方が良いです。(ショートカットで定義済み)
SetBGM( "043.mid" ); /* BGMを設定 */
この文はsound(=音楽ファイル)を設定しています。
使用可能なファイル型式はユーザーの対応している型式になりますので、
midi、aiff、mp3等が無難です。ファイルサイズからいってmidiがベターでしょう。
「SetBGM」は「soundフレームのサウンドのurlを設定する関数」です。
「SetBGM( " -url- " );」と使います。
ファイルは引数が「"043.mid"」の場合「sound/043.mid」となります。
SetButton( "start",1,"no",-1,"空白の3年間もどき",50,"FlyingImageTest",80); /* ボタンを設定 */
ここではボタンを設定しています。
「SetButton」は「selectフレームのボタン設定用関数」です。
んで、いつも通り「SetButton (val1,num1,val2,num2,val3,val4)」とかやります。
ここではvalがボタンの上に出る文字、numが動作の番号(=通称:NOA)です。
詳しくは後の関数説明で。
if (val == "skip") return 1;
スキップ制御用のif文です。
スキップ-コマンドを実行したときに飛ばすか否かを設定します。
この文があると、この行動(=アクション) は飛ばされます。
(設定だけして終わりにし、『反映』しない事でスキップさせてます。)
全文直訳は「もし「val」が「"skip"」なら1を伴ってリターン。」、
全文意訳は「もし与えられた値(=val)がスキップを示す(="skip")なら処理をやめ、1を返す。」です。
DoALL();/* 設定を反映 */
ここでは設定を反映しています。
「DoALL」は「設定反映用の関数」です。
内容としてはdraw***()という低水準の関数を実行していきます。
そこ当たりの事に関しては最後の方の章に書いておきます。
return 0;
そのまんま、処理を中断し、0を返す、ですな。
}
関数の終わりですね。
お疲れ様でした。
以上でシナリオの書き方 with 例を終わります。
さて、次行こ、次。