WOLF RPGエディター(ウディタ)/演出・システム【サイトトップへ戻る】
■[キーボード入力]を使ってパスワードを入力
(更新:2023/03/19)


イベントコマンド【キーボード入力】を使ってパスワードを入力する方法を紹介します。



ショートカット
■パスワードを教えるイベントを設定
■パスワードを入力するイベントを設定
■マップの端では表示位置の補正を行う

パスワードイベントの基礎情報は別ページに記載しています。
【パスワードイベントの基礎のページを開く】


  
■パスワードを教えるイベントを設定

パスワードを教えるイベントを設定します。

今回はネコのイベントに話しかけるとパスワードを教えてくれるように設定します。



【イベントコード表示】

■マップイベント「情報ネコ」

起動条件:決定キーで実行
起動条件変数:なし

■文章:パスワードは「1234」だよ。


▲トップへ戻る▲


  
■パスワードを入力するイベントを設定

パスワードを入力するイベントを設定します。

今回はカギのかかった扉を開けるイベントを作成します。

予め扉の地形チップを設定してください。





パスワードの入力は【文字列操作】にある【キーボード入力】を使います。
【イベントコマンド【文字列操作】のキーボード入力の説明を見る】

今回は半角数字で4桁なので、バイト数には「4」を設定します。





【キーボード入力】の文字入力の表示位置やピクチャの表示位置などは、
ゲーム画面のサイズ[320×240[x2]]に合わせて設定します。



【キーボード入力】の文字の表示位置は以下のとおりです。

システム変数[40:キーボ入力文字列 X座標]=145
システム変数[41:キーボ入力文字列 Y座標]=82





【キーボード入力】の入力時の色の設定は、システムDB[12:文字色]データ[10〜12]で行ってください。

【システムDB[12:文字色]の説明を見る】





ピクチャの表示位置とピクチャの表示サイズは以下のとおりです。

ピクチャー
番号 表示内容 位置 横サイズ 縦サイズ X表示位置 Y表示位置 使用内容
1 <SQUARE> 中心 40 20 160 88 入力画面の下地(青)
2 <SQUARE> 中心 180 20 160 60 文字列の下地(黒)
3 パスワードを入力して下さい 中心     160 60 文字列






扉の下部に以下のマップイベントを設定してください。





【イベントコード表示】

■マップイベント「扉イベント」

起動条件:決定キーで実行
起動条件変数:なし

▼ セルフ[0]:[0:カギがかかっている][1:扉が開いた]
▼ セルフ[1]:[0=初めて扉を調べた]

■条件分岐(変数): 【1】 このEvのセルフ変数0 が 1 と同じ
-◇分岐: 【1】 [ このEvのセルフ変数0 が 1 と同じ ]の場合↓
|■場所移動:主人公 ▲現在のマップ X:15 Y:12 [トランジションなし]
|■イベント処理中断
|■
◇分岐終了◇
■条件分岐(変数): 【1】 このEvのセルフ変数1 が 0 と同じ
-◇分岐: 【1】 [ このEvのセルフ変数1 が 0 と同じ ]の場合↓
|▼ 初めて扉を調べた時(一度だけ実行する)
|■変数操作: このEvのセルフ変数1 = 0 + 0
|■文章:扉にはカギがかかっている。
|■文章:扉の横には入力ボタンがある。
|■
◇分岐終了◇
■ピクチャ表示:1 [中心]ウィンドウ「<SQUARE>」サイズ[40,20] X:160 Y:88 / 0(0)フレーム /
       パターン 1 / 透 200 / 通常 / 角 0 / 拡 100% / カラー R[0] G[0] B[0]
■ピクチャ表示:2 [中心]ウィンドウ「<SQUARE>」サイズ[180,20] X:160 Y:60 / 0(0)フレーム /
       パターン 1 / 透 200 / 通常 / 角 0 / 拡 100% / カラー R[0] G[0] B[100]
■ピクチャ表示:3 [中心]文字列[パスワードを入力] X:160 Y:60 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■変数操作: Sys40:キーボ入力文字列 X座標 = 145 + 0
■変数操作: Sys41:キーボ入力文字列 Y座標 = 82 + 0
■文字列操作:S0[[サンプル]一時文字列] = キーボード入力 4バイト [キャンセル可]
■条件分岐(変数): 【1】 Sys39:[読]キーボ入力状態 0=Enter -1=キャンセル が -1 と同じ
-◇分岐: 【1】 [ Sys39:[読]キーボ入力状態 0=Enter -1=キャンセル が -1 と同じ ]の場合↓
|■文章:入力をキャンセルしました。
|■
-◇上記以外
|■条件分岐(文字): 【1】 S0[[サンプル]一時文字列]が "1234" と同じ 【2】 S0[[サンプル]一時文字列]が "" と同じ
|-◇分岐: 【1】 [ S0[[サンプル]一時文字列] "1234" と同じ ]の場合↓
||■文章:ロックが解除されました。
||■変数操作: このEvのセルフ変数0 = 1 + 0
||■
|-◇分岐: 【2】 [ S0[[サンプル]一時文字列] "" と同じ ]の場合↓
||■文章:入力をキャンセルしました。
||■
|-◇上記以外
||■文章:パスワードが違います。
||■
|◇分岐終了◇
|■
◇分岐終了◇


以上で設定完了です。


▲トップへ戻る▲


  
■マップの端では表示位置の補正を行う

キーボード入力やピクチャの表示位置は、主人公が画面中央にいる時に合わせた表示位置になっています。

そのため、マップの端の方では表示位置がずれた状態になります。





今回は扉イベントの画面表示位置を取得し、扉の位置に合わせてピクチャやキーボード入力が表示されるように補正します。





表示位置の補正では、補正できる限界値を設定し、ゲーム画面の外に表示されないようにします。

▼表示位置が補正される限界値


▼補正例


これほどマップの端に扉イベントを設置する事は無いと思いますが、
このようなあり得ない状況でも問題無く表示されるようにしておけば、
例えば移動しているキャラクターにパスワードを伝えるようなイベントを作る場合でも、
キャラクターがどこに移動しても必ずパスワードの入力画面がゲーム画面内に収まるようになります。



■パスワードを入力するイベントを設定から変更した箇所を黄色で表示。

【イベントコード表示】

■マップイベント「扉イベント」

起動条件:決定キーで実行
起動条件変数:なし

▼ セルフ[0]:[0:カギがかかっている][1:扉が開いた]
▼ セルフ[1]:X調整(キーボード入力)
▼ セルフ[2]:X調整(文字列)
▼ セルフ[3]:Y調整

■条件分岐(変数): 【1】 このEvのセルフ変数0 が 1 と同じ
-◇分岐: 【1】 [ このEvのセルフ変数0 が 1 と同じ ]の場合↓
|■場所移動:主人公 ▲現在のマップ X:15 Y:12 [トランジションなし]
|■イベント処理中断
|■
◇分岐終了◇
■変数操作+: このEvのセルフ変数1 = このマップイベント の 画面X座標
■変数操作+: このEvのセルフ変数2 = このマップイベント の 画面X座標
■変数操作+: このEvのセルフ変数3 = このマップイベント の 画面Y座標
■変数操作: このEvのセルフ変数1〜このEvのセルフ変数2 -= 160 + 0
■変数操作: このEvのセルフ変数3 -= 112 + 0
■変数操作: このEvのセルフ変数1 下限= -140 + 0
■変数操作: このEvのセルフ変数1 上限= 140 + 0
■変数操作: このEvのセルフ変数2 下限= -70 + 0
■変数操作: このEvのセルフ変数2 上限= 70 + 0
■変数操作: このEvのセルフ変数3 下限= -50 + 0

■ピクチャ表示:1 [中心]ウィンドウ「<SQUARE>」サイズ[40,20] X:160 Y:88 / 0(0)フレーム /
       パターン 1 / 透 200 / 通常 / 角 0 / 拡 100% / カラー R[0] G[0] B[0]
■ピクチャ移動:1 相対X:このEvのセルフ変数1 Y:このEvのセルフ変数3 / 0(0)フレーム /
       パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値

■ピクチャ表示:2 [中心]ウィンドウ「<SQUARE>」サイズ[180,20] X:160 Y:60 / 0(0)フレーム /
       パターン 1 / 透 200 / 通常 / 角 0 / 拡 100% / カラー R[0] G[0] B[100]
■ピクチャ表示:3 [中心]文字列[パスワードを入力して下さい] X:160 Y:60 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャ移動:2 〜 3 相対X:このEvのセルフ変数2 Y:このEvのセルフ変数3 / 0(0)フレーム /
       パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値

■変数操作: Sys40:キーボ入力文字列 X座標 = 145 + このEvのセルフ変数1
■変数操作: Sys41:キーボ入力文字列 Y座標 = 82 + このEvのセルフ変数3
■文字列操作:S0[[サンプル]一時文字列] = キーボード入力 4バイト [キャンセル可]
■ピクチャ消去:1 〜 3 / 0(0)フレーム
■条件分岐(変数): 【1】 Sys39:[読]キーボ入力状態 0=Enter -1=キャンセル が -1 と同じ
-◇分岐: 【1】 [ Sys39:[読]キーボ入力状態 0=Enter -1=キャンセル が -1 と同じ ]の場合↓
|■文章:入力をキャンセルしました。
|■
-◇上記以外
|■条件分岐(文字): 【1】 S0[[サンプル]一時文字列]が "1234" と同じ 【2】 S0[[サンプル]一時文字列]が "" と同じ
|-◇分岐: 【1】 [ S0[[サンプル]一時文字列] "1234" と同じ ]の場合↓
||■文章:ロックが解除されました。
||■変数操作: このEvのセルフ変数0 = 1 + 0
||■
|-◇分岐: 【2】 [ S0[[サンプル]一時文字列] "" と同じ ]の場合↓
||■文章:入力をキャンセルしました。
||■
|-◇上記以外
||■文章:パスワードが違います。
||■
|◇分岐終了◇
|■
◇分岐終了◇


▲トップへ戻る▲



◎関連ページ

◆パスワードイベントの基礎
┣◆[選択肢]を使ってパスワードを入力
┣◆[キーボード入力]を使ってパスワードを入力
┣◆[キー入力]を使ってパスワードを入力
┣◆オリジナルの入力画面でパスワードを入力
┣◆地面の色を変えて図形を作ってパスワードを入力
┣◆正しいパスワードを聞かないと扉が開かない(数字入力タイプ)
┗◆正しいパスワードを聞かないと扉が開かない(文字入力タイプ)

◆イベントコマンド【文字列操作】

YADOT-WOLFトップ  気紛れな空間へ戻る  メール