ティラノスクリプトで名前入力機能を作成する
ティラノスクリプトで名前入力機能を作成します。
ページの最後に、サンプルコードとサンプル画像を載せております。
よろしければ、ご利用ください。
入力欄とボタンの作成
*name_entry
[edit name="f.player_name" width="280" height="70" size="30" left=500 top=325 maxchars=4 initial="太郎"]
[button graphic="ok.png" target="*commit" x=465 y=540 enterimg="ok2.png"]
[button graphic="reset.png" target="*reset" x=665 y=540 enterimg="reset2.png"]
[s]
[edit]タグで入力欄を作成します。
入力欄の横幅、縦幅、入力する文字の大きさ、位置を指定していきます。
nameパラメータにf.player_nameを指定します。
maxchasパラメータで字数制限ができます。
initialパラメータで、デフォルト名を指定できます。
[button]タグで、決定ボタンとリセットボタンを作成します。
※[glink]タグは使用できません。
決定ボタンで、commitラベルに移動します。
リセットボタンで、resetラベルに移動します。
リセット機能
*reset
[eval exp="f.player_name= '太郎'"]
[jump target="*name_entry"]
デフォルト名にリセットします。
その後、入力画面へ戻ります。
未入力の確認と、入力した名前の決定
*commit
[commit]
[jump target="*retry" cond="!f.player_name"]
[iscript]
tf.name_entry_text = "あなたのお名前は【" + f.player_name + "】でよろしいですか?";
[endscript]
[dialog text="&tf.name_entry_text" type="confirm" target_cancel="*name_entry"]
[cm]
[jump storage="scene1.ks"]
[commit]タグで入力した名前を決定します。
condパラメータを、!f.player_nameと指定することで、未入力の場合、
retryラベルへ移動します。
入力されていた場合、次の作業に進みます。
ダイアログに表示する文章を作成します。
f.player_nameと確認の文章を連結します。
連結した文章をtf.player_nameとします。
tf.player_nameを[dialog]タグのtextパラメータで指定します。この時、tf.player_nameの前に&を必ず付けてください。
キャンセルした場合、入力画面まで戻るようにします。
target_cancelパラメータでname_entryラベルを指定します。
OKの場合、他のシナリオに移動する前に、[cm]タグで、入力欄と画像ボタンを削除します。
未入力を知らせ、再入力させる
*retry
[dialog text="入力されていません"]
[jump target="*name_entry"]
ダイアログで通知した後、入力画面に戻ります。
入力欄とボタンの作成(名字・名前用)
*name_entry
[edit name="f.last_name" width="280" height="70" size="30" left=500 top=270 maxchars=4 initial="山田"]
[edit name="f.first_name" width="280" height="70" size="30" left=500 top=370 maxchars=4 initial="太郎"]
f.last_nameとf.first_nameを作成します。
リセット機能(名字・名前用)
*reset
[iscript]
f.last_name= "山田"
f.first_name= "太郎"
[endscript]
名字・名前の両方をリセットします。
未入力の確認と、入力した名前の決定(名字・名前用)
*commit
[commit]
[jump target="*retry" cond="!f.last_name || !f.first_name"]
[iscript]
f.player_name = f.last_name + f.first_name
tf.name_entry_text = "あなたのお名前は【" + f.player_name + "】でよろしいですか?";
[endscript]
[dialog text="&tf.name_entry_text" type="confirm" target_cancel="*name_entry"]
[cm]
[jump storage="scene1.ks"]
名字・名前のどちらか未入力の場合、retryラベルへ移動します。
f.last_nameとf.first_nameを連結させ、f.player_nameとします。
サンプルコード
[cm]
[clearfix]
[bg storage="white.png" time=0]
[layopt layer=0 visible=true]
*name_entry
[cm]
[freeimage layer="0"]
[ptext layer=0 text="お名前を入力してください" x=0 y=90 size=50 color="black" width=1280 align=center time=0]
[ptext layer=0 text="※最大4文字まで" x=0 y=180 size=24 color="black" width=1280 align=center time=0]
[edit name="f.player_name" width="280" height="70" size="30" left=500 top=325 maxchars=4 initial="太郎"]
[button graphic="ok.png" target="*commit" x=465 y=540 enterimg="ok2.png"]
[button graphic="reset.png" target="*reset" x=665 y=540 enterimg="reset2.png"]
[s]
*reset
[eval exp="f.player_name= '太郎'"]
[jump target="*name_entry"]
*commit
[commit]
[jump target="*retry" cond="!f.player_name"]
[iscript]
tf.name_entry_text = "あなたのお名前は【" + f.player_name + "】でよろしいですか?";
[endscript]
[dialog text="&tf.name_entry_text" type="confirm" target_cancel="*name_entry"]
[cm]
[freeimage layer=0]
[jump storage="scene1.ks"]
*retry
[dialog text="入力されていません"]
[jump target="*name_entry"]
サンプルコード(名字・名前用)
[cm]
[clearfix]
[bg storage="white.png" time=0]
[layopt layer=0 visible=true]
*name_entry
[cm]
[freeimage layer="0"]
[ptext layer=0 text="お名前を入力してください" x=0 y=90 size=50 color="black" width=1280 align=center time=0]
[ptext layer=0 text="※最大4文字まで" x=0 y=180 size=24 color="black" width=1280 align=center time=0]
[edit name="f.last_name" width="280" height="70" size="30" left=500 top=270 maxchars=4 initial="山田"]
[edit name="f.first_name" width="280" height="70" size="30" left=500 top=370 maxchars=4 initial="太郎"]
[button graphic="ok.png" target="*commit" x=465 y=540 enterimg="ok2.png"]
[button graphic="reset.png" target="*reset" x=665 y=540 enterimg="reset2.png"]
[s]
*reset
[iscript]
f.last_name= "山田"
f.first_name= "太郎"
[endscript]
[jump target="*name_entry"]
*commit
[commit]
[jump target="*retry" cond="!f.last_name || !f.first_name"]
[iscript]
f.player_name = f.last_name + f.first_name
tf.name_entry_text = "あなたのお名前は【" + f.player_name + "】でよろしいですか?";
[endscript]
[dialog text="&tf.name_entry_text" type="confirm" target_cancel="*name_entry"]
[cm]
[freeimage layer=0]
[jump storage="scene1.ks"]
*retry
[dialog text="入力されていません"]
[jump target="*name_entry"]
サンプル画像
参考サイト
memo ゲーム制作やデザインについての個人的メモ 様
https://7yen.hateblo.jp/
りまねどっとねっと 様
https://rimane.net/
この記事が気に入ったらサポートをしてみませんか?