ティラノスクリプト 入力フォーム 作成と入力完了まで【コピペでOK!】
ティラノスクリプト 入力フォーム
ゲームには欠かせない、プレイヤーの名前を任意につけられるアレを作ってみました!
コピペで動かせると思いますが、画像を使うので少し準備が必要です
必要な画像
・OKボタン (必須)
・入力ウィンドウの背景 (お好みで)★使わない場合は削除でOK
完成図
黄色い枠が入力ウィンドウの背景画像です
その上にOKボタンを表示しています
文字数はお好みになりますが最大文字数に合わせて入力ウィンドウのサイズを設定してください
文字数はお好みになりますが最大文字数に合わせて入力ウィンドウのサイズを設定してください
入力の流れ・シーケンス
空白をチェックする
このままだと何も入力しなくても進められるので、2の段階で「空白だったら1に戻す」ようにしています
こちらもお好みで!
こちらもお好みで!
実際のソース
*start 12文字以内で名前を入力してください *blank [iscript] f.blank = "" [endscript] ;入力画面 ;入力ウィンドウのベース画像 [image name ="base" layer="0" storage="dialog_base.png" x="340" y="100" folder="image"]
;入力ウィンドウ [edit name="f.player" width="300" height="70" size="24" left=495 top=110 maxchars=12] ;OKボタンの画像(フォルダはimage) [button name ="base" graphic="button/ok.png" x=567 y=190 target="*input"]
[s] *input [commit]
;表示していたメッセージを消す [er] ;未入力だったら戻す [if exp ="f.player == f.blank"] # 12文字以内で名前を入力してください [jump target="*blank"] [endif] ;入力内容の確認ダイアログを表示 [iscript] f.input = '「' + f.player + '」 を入力しますか?' [endscript] [dialog type="confirm" text="&f.input" target="*ok" target_cancel="*cancel"] [s] *ok [cm]
;ベース画像を消す [free layer="0" name="base"] [jump target="*end"] *cancel [jump target="*start"] *end # 「[emb exp ="f.player"]」を記録しました![p]
コピペで動くはずですが、画像ファイルの名前と置き場所を揃えるか、環境に合わせてください。
ラベルごとの説明
*start
はじめに表示するテキスト
文末には[p]などのタグはなし!
*blank
入力フォーム一式と空白をチェックするためのf.blankを設定
入力エリアを作るタグは[edit]
[edit name="f.player" width="300" height="70" size="24" left=495 top=110 maxchars=12]
最低限必要なパラメーター
name 入力した内容を保存する変数f.playerを設定
name 入力した内容を保存する変数f.playerを設定
width 入力エリアの横幅 最大文字数に合わせて調整してください
height 入力エリアの高さ フォントのサイズに合わせて調整してください
size フォントのサイズ
left 表示位置X
top 表示位置Y
maxchars 最大文字数
未入力だった時にここに戻るのでblankというラベル名にしていますがお好みで!
入力するために[s]でゲームを止めるのを忘れずに!
未入力だった時にここに戻るのでblankというラベル名にしていますがお好みで!
入力するために[s]でゲームを止めるのを忘れずに!
*input
入力後の処理です
[commit]は専用のタグで入力した内容を確定します
これがないとf.playerの中身はundefinedのままです
このタイミングで[commit]するのはダイアログに確認で入力内容を表示しているからです
そして未入力で進ませたくないので、未入力なら*blankに戻しています
その時に一度出ているメッセージを消して出し直しています
これでループしてもメッセージが重複することはありません
入力が確認できたら内容の確認ダイアログを表示します
f.printという変数にダイアログに表示するテキストを代入します
f.playerも表示したいので一つにまとめています
[dialog type="confirm" text="&f.input" target="*ok" target_cancel="*cancel"]
変数以外はまるっとコピペでよいと思いますが、ラベル名が重複している等で変更するならこちらも変更してください
ダイアログ表示後には[s]!
*ok
[cm]で入力エリアとOKボタンが消えます
がベースにした画像は消えないので以下で個別に消しています
[free layer="0" name="base"]
そしてendに飛ばします
*cancel
最初に戻ります
*end
確認のメッセージを出して終了!!
お名前入力、ゲームを作るからには使ってみたい要素ですが入力エリアを出したり、ボタン画像を用意したりと結構手間がかかるのとイメージだけでも敷居が高く感じていました
なんとかさくっと作りたい・・・でもせっかく使うならこれくらいはあったらユーザー・フレンドリーかな? という内容にしました
入力したデータがゲームに反映されると嬉しいので、がんばってよかったな! ってなりました
いろんなところで入力データを使ってみたくなりますがはみ出しや見栄えのチェックに最大文字でデバッグすることをお忘れなく!
(ティラノスクリプトVer6.00で作成しました)