<?xml version="1.0" encoding="Shift_JIS" ?>

<doc>
<title>選択肢を使おう</title>

<para>
<ptitle>ラベルを定義する</ptitle>
　さて、選択肢を使う前に<kw>ラベル</kw>の説明をしなければなりません。<r/>
　選択肢を選択したら、選択先にシナリオの制御が移らなければなりません。そのときの制御の移動の目印となるのがラベルです。<r/>
<r/>
　ラベルは、行の先頭に * のついた行です。いままでのサンプルでも出てきていましたね。たとえば・・・<r/>
<bq>
[wait time=200]<r/>
<b>*start|スタート</b><r/>
[cm]<r/>
こんにちは。<r/>
</bq>
　となっていました。この場合、ここで *start という名前のラベルを定義したわけです。じゃあ | (縦棒) 以降の "|スタート" ってなに、って事になりますが、それについては別の場所 <comlink href="SaveLoad"/> で説明します。| 以降は書かなくてもかまいません。<r/>
<r/>
　ラベルの名前には任意の物を指定できますが、半角英数のみにしておいた方が無難でしょう。また、ラベル名に半角スペースは使わないでください。<r/>
<r/>
　ラベルの機能には、このように制御の移動の際の道しるべになる以外に、セーブ・ロードの位置にもなるという重要な機能があります。これも | (縦棒) の意味と一緒に別の場所でお話しいたします。<r/>
</para>

<para>
<ptitle>選択肢を使ってみる</ptitle>
　KAG では選択肢というよりもむしろハイパーリンクに近い考え方で選択肢を実現します。<r/>
　選択肢を使うには <kw>link</kw> と <kw>endlink</kw> というタグを使います。この2つのタグで選択肢となる文章を挟むと、そこがマウスやキーボードで選択可能になります。マウスでクリックされたり、キーボードで Enter キーが押されると、該当する link タグに書かれた target 属性のラベルにジャンプします。<r/>
　また、選択肢待ちや、シナリオの終了など、動作を停止したい場合は <tt>[<kw>s</kw>]</tt> タグを書きます。メニューから「次の選択肢まで進む」を選ぶと、この <tt>[s]</tt> タグが来るまでノンストップでシナリオを実行します。<r/>
　これらを使って、以下のように記述することができます。target= の後の * (アステリスク) は必要ですので忘れないようにしてください。また、| (縦棒) 以降は、target の後に指定するときには必要ありません。<r/>
<r/>
<bq>
[wait time=200]<r/>
*start|スタート<r/>
[cm]<r/>
<b>[link target=*select1]選択肢１[endlink][r]<r/>
[link target=*select2]選択肢２[endlink][r]<r/>
[link target=*select3]選択肢３[endlink][r]<r/>
[s]</b><r/>
<r/>
*select1<r/>
選択肢１が選択されました。[l]<r/>
[s]<r/>
<r/>
*select2<r/>
選択肢２が選択されました。[l]<r/>
[s]<r/>
<r/>
*select3<r/>
選択肢３が選択されました。[l]<r/>
[s]<r/>
</bq>
　これをこのまま実行させると、選択肢を選択しても選択肢が消えません。<r/>
　消すには、通常ラベルの次に [cm] を書きます。<r/>
<bq>
[wait time=200]<r/>
*start|スタート<r/>
[cm]<r/>
<b>[link target=*select1]選択肢１[endlink][r]<r/>
[link target=*select2]選択肢２[endlink][r]<r/>
[link target=*select3]選択肢３[endlink][r]<r/>
[s]</b><r/>
<r/>
*select1<r/>
[cm]<r/>
選択肢１が選択されました。[l]<r/>
[s]<r/>
<r/>
*select2<r/>
[cm]<r/>
選択肢２が選択されました。[l]<r/>
[s]<r/>
<r/>
*select3<r/>
[cm]<r/>
選択肢３が選択されました。[l]<r/>
[s]<r/>
</bq>
<r/>
<descimg>
<dititle>選択肢の例</dititle>
<img src="Diverge.png"/>
</descimg>

<note>
	　選択肢は一回選択されると、新しい選択肢が表示されるか、<kw>unlocklink</kw> タグが実行されるまでは選択することはできません。<r/>
	　また、すでに画面に表示されている選択肢を選択不能にするために <kw>locklink</kw> タグがあります。<r/>
	　通常の記述ではこのことは気にする必要はありません。<r/>
</note>
</para>

<para>
<ptitle>２つ以上のシナリオファイル</ptitle>
　管理上、シナリオファイルを2つ以上に分けたい場合があるとおもいます。<r/>
　答えは簡単で、link タグに storage 属性をつけるだけです。たとえば、scn2.ks というシナリオを用意して、そこの *scn2start というラベルにジャンプするには・・・。<r/>
<bq>
[link storage="scn2.ks" target=*scn2start]scn2.ks の scn2start[endlink]<r/>
</bq>
<r/>
と記述します。この選択肢がクリックされると、scn2.ks が読み込まれ、*scn2start というラベルにジャンプします。<r/>
</para>

<para>
<ptitle>そのほかのシナリオ分岐に関するもの</ptitle>
　ただ単に指定したラベルにジャンプしたいときのために jump タグがあります。<r/>
　また、link タグにはクリックされたときに TJS ( 吉里吉里が直接理解できるスクリプト ) の式を実行する機能などもあります。
　また、<kw>button</kw> タグは、テキストを選択肢にするのではなく、ボタンとして用意された画像を選択肢にする物です。グラフィカルな選択肢の実現に用います。<r/>
　<link href="Tags"/> を参照してみてください。<r/>
</para>

</doc>
