見出し画像

ティラノスクリプトで名前入力機能を作成する

名前入力機能

ティラノスクリプトで名前入力機能を作成します。
ページの最後に、サンプルコードとサンプル画像を載せております。
よろしければ、ご利用ください。

入力欄とボタンの作成

*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_namef.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/

この記事が気に入ったらサポートをしてみませんか?