
名前入力とは
キャラクターの名前など、プレイヤーに値を自由に入力してもらい、シナリオ中に表示させる機能です。
主人公の名前などによく使われます。
こういうのです↑
[edit]、[commit]タグを使う
名前入力機能を作るには、[edit]タグと[commit]タグが必要です。
パラメータなどはタグ解説のページを参照してね
名前入力機能の流れ
名前入力機能は、だいたい↓のような流れで処理が進みます。
[edit]タグで名前入力フォーム表示 ↓ プレイヤーが名前を入力 ↓ 決定ボタンを押す ↓ 「これでいいですか?」とか表示 ↓ [commit]タグで入力された値を指定した変数に格納 ↓ 名前入力フォーム、ボタンを消去
なんだかややこしいですね。
ひとつずつ見ていきましょう。
ひとつずつ見ていきましょう。
[edit]タグで名前入力フォーム表示
まずは名前を入力するためのパーツ(入力フォーム)を表示します。
[edit]タグで表示する入力フォームは、プレイヤーが自由にキーボードで入力できるパーツです。
[edit]タグで表示する入力フォームは、プレイヤーが自由にキーボードで入力できるパーツです。
[edit name="tf.test"]
記述としてはこれだけでOKです。
自由入力ができるフォームが表示されたと思います。
自由入力ができるフォームが表示されたと思います。
プレイヤーが名前を入力
好きに入力してもらいましょう。
気をつけておきたいのは、入力可能な文字数に上限を設定しておくことです。
設定していないと、プレイヤーがめちゃくちゃ長い値を設定して、シナリオ中に表示しきれないということがありえます。
気をつけておきたいのは、入力可能な文字数に上限を設定しておくことです。
設定していないと、プレイヤーがめちゃくちゃ長い値を設定して、シナリオ中に表示しきれないということがありえます。
決定ボタンを押す
ここ大事です。
[edit]で表示されるのは入力用のフォームだけです。
また、フォーム表示中はゲームを停止させるため、フォーム入力後の処理に進むには、[button]タグなどで入力後の処理の部分にシナリオジャンプする必要があります。
ボタン自体は、名前入力機能だからといって設定しなければならない項目はありません。
storageパラメータなりtargetパラメータなりを指定した、普通のボタンで大丈夫です。
[edit]で表示されるのは入力用のフォームだけです。
また、フォーム表示中はゲームを停止させるため、フォーム入力後の処理に進むには、[button]タグなどで入力後の処理の部分にシナリオジャンプする必要があります。
ボタン自体は、名前入力機能だからといって設定しなければならない項目はありません。
storageパラメータなりtargetパラメータなりを指定した、普通のボタンで大丈夫です。
[button x=100 y=200 target="*jump" graphic="edit.png"]
「これでいいですか?」とか表示
これはあってもなくても大丈夫です。あった方が親切かもしれないだけ
プレイヤーが決定ボタンを押したあとに、「やっぱり今のナシ!」ができるように確認ダイアログを表示させます。
やり方は簡単で、決定ボタンを押してジャンプした先で[dialog]タグを使うだけです。
プレイヤーが決定ボタンを押したあとに、「やっぱり今のナシ!」ができるように確認ダイアログを表示させます。
やり方は簡単で、決定ボタンを押してジャンプした先で[dialog]タグを使うだけです。
*jump [dialog type="confirm" text="これでいいですか?" target="*ok" target_cancel="*cancel"] [s]
[commit]タグで入力された値を指定した変数に格納
ここでようやくプレイヤーが入力した値が確定されます。
[commit]タグを記述後に、[edit]タグのnameパラメータで指定した変数に、プレイヤーが入力した値が格納され、ゲーム内で使えるようになります。
[commit]タグを記述後に、[edit]タグのnameパラメータで指定した変数に、プレイヤーが入力した値が格納され、ゲーム内で使えるようになります。
*ok [commit]
注意することは、[commit]タグを使う時点では、まだ入力フォームは標示したままになっていないといけないということです。
うっかり[cm]タグとかで消さないようにしましょう。
うっかり[cm]タグとかで消さないようにしましょう。
入力フォーム、ボタンを消去
[commit]タグを使ったあとに、入力フォーム(と、ボタン)を消去します。
[cm]タグでも[clearfix]タグでも、好きなものを使ってください。
*ok [commit] [cm]
名前入力の実例
上で書いたスクリプトの全体です。
*start [cm] [edit name="tf.test"] [button x=100 y=200 target="*jump" graphic="edit.png"] [s] *jump [dialog type="confirm" text="これでいいですか?" target="*ok" target_cancel="*cancel"] [s] *ok [commit] [cm] [jump target="*next"] [s] *cancel [jump target="*start"] [s] *next ...
確認ダイアログでプレイヤーが「キャンセル」をクリックしたときは、入力フォームの表示に戻っているところがミソです。