自動実行的な使い方
戻る
基本の使い方
とりあえず、どんなことが出来るのか?
もし私の目的に合うものなら使ってみようじゃないか、
という人のために、いちばん簡単な使い方を説明します。
- BODYタグ内のどこかに、次の一行を加えます。
<script src="ess.js" language="JScript"></script>
- 出力エリアとして、IDをつけたブロックを作成します。ここでは仮に、msg1としておきます。
<div id="msg1"></div>
- 実際に出力する内容として、IDをinitialとしたブロックを作成し、表示内容を記述します。
<div id="initial">
\m[select,msg1]
やあこんにちわ。\n
DHASS with tunaスクリプトはじまります。\n
</div>
これで、ページの全内容が読み込まれたあとに、
msg1にinitialで指定した内容がタイプライタ表示されます。
ちなみに、出力エリアは必ずしもDIVである必要はありません。
IDさえついていたらテーブルセルのTDや段落タグのPなど、
文章を含められるタグならどんなタグでも使えます。
IDをつけた要素(文章を含めることの出来るタグ)はすべて「出力エリア」として認識されます。
さらなる使い方
文章を表示するだけではアドベンチャーゲームとしては前時代的です。
ひとつ、画像の表示をしてみましょう。
まず、画像エリアと出力エリアを作ります。
<center>
<img id="img1" width="320" height="240" style="visibility:hidden;">
<div id="msg1" style="border:black solid thin;
width:400; height:100; text-align:left;"></div>
</center>
すこしごちゃごちゃしていますが、難しいことはありません。
上に画像を表示するimgタグがあります。
IDのついたimgタグはすべて「画像エリア」として認識されます。
画像エリアがvisibility:hiddenで非表示になっているのは、
あとでフェードイン表示させるためです。
下は文章を出力するためのdivです。
IDがついた要素なので「出力エリア」として認識されます。
枠線をつけて大きさを決めるためにスタイルシートを使っています。
表示内容のtunaスクリプトは、次のようにしてみます。
<div id="initial">
\m[select,msg1]
\u[cave.jpg,ruin.jpg]
このtunaスクリプトは先行ロードを完了したあと、\n
画像エリアを選択し、\n
画像をフェードイン表示させます。
\.u
\i[select,img1]
\i[fadeopen,cave.jpg]
</div>
まず、出力エリアとしてmsg1を選択しています。
続いて\uタグでcave.jpgの先行ロードを開始します。
Web上では常に画像を先行ロードしておかないと表示できませんので、これは重要です。
\.uタグは先行ロードが完全に終わるまで待機します。
\uと\.uの間は、長いほど効果的です。
というのも、文章を表示している間にバックグラウンドで先行ロードを完了することができれば、
待ち時間なしで進行できるからです。
最後に、画像エリアとしてimg1を選択し、
画像エリアにcave.jpgをフェードインで表示させます。
選択肢を作る
アドベンチャーゲームとしては、やはり選択肢が必要です。
ここではその選択肢の実行を試してみます。
ここで「コントロールタグ」について説明しておきましょう。
tunaスクリプトでは\で始まる文字列を「コントロールタグ」と呼びます。
tunaスクリプトは通常の文章をそのまま出力しますが、
それだけだと文章の表示以外なにも出来なくなってしまいます。
そこでコントロールタグを文章中に入れて、
画像の表示をさせたり、
時間待ちをしたり、
選択肢を作成したりするわけです。
また、tunaスクリプトでは改行が全て無視されますので、
実際に改行をするときには\nというコントロールタグが必要です。
さて、次のtunaスクリプトを見てください。
\m[select,msg1]
あなたの好きな果物は?\n
\a[melon,メロン]\n
\a[mikan,みかん]\n
\a[ringo,リンゴ]\n
\.a
\t[melon]
メロンか。\n
それもよい・・・。
\j[end]
\t[mikan]
みかん。\n
ふむ、食べ過ぎに注意せよ。
\j[end]
\t[ringo]
さくっ。\n
\t[end]
ページを開くと、あなたの好きな果物は?と質問されます。
3つの選択肢が表示され、クリックするとそれぞれの文章が表示されます。
選択肢は\a[ラベル,標題]というコントロールタグで作成します。
その選択肢をクリックしたときに、\t[ラベル]の位置に処理が移動するわけです。
必要なだけ選択肢を作った後、\.aで選択肢の選択待ちに入ります。
移動先の位置を\t[ラベル]で設定します。
それぞれの\tに続く文章で個別の内容を表示し終わったら、
\j[end]で最後の位置を示すラベル\t[end]まで強制的にジャンプします。
ここで\jがないと選択肢のジャンプ先で文章が表示された後、
そのまま次の選択肢の内容まで表示されてしまいます。
\j[ラベル]は強制ジャンプ命令で、
\t[ラベル]が上にあれば実行を上に戻すことも可能です。
分割すること
さて、これまでの説明(とサンプルページの内容)でアドベンチャーゲームは作れます。
ですが本格的な大長編に作ろうと思うと、当然ながらtunaスクリプトも大長編になってしまいます。
もっとも、現バージョンではセーブ・ロードが出来ないので、
それほどの長編を作ってもユーザが困るんですが、
それでもある程度の長さになると管理が大変になります。
そこで分割が重要です。
場面ごとにいくつかのdivに分割しておけば、
それぞれでジャンプラベルを新しく使うことが出来ます。
選択肢ごとにひとつのdivを割り当てるぐらいがちょうどです。
別のtunaスクリプトに移動するコントロールタグは\g[ID名]です。
このタグはA taleで多用されているので、それを見てください。
good luck!
戻る