| はじめまして(?)、玖琺祐一郎です。
イベントデータの情報があまりにも少ないので自分もテストしてみましたが、これでは間違いなく無限ループに突入する仕様になっています。
> ↓イベントデータここから > > Do > 基準時間 = GetTime() > Loop While (KeyState(37) = 0 Or KeyState(38) = 0 Or KeyState(39) = 0 Or KeyState(40) = 0) > > ↑イベントデータここまで > > 上記のように改変したところ、無限ループに突入して強制終了を余儀なくされました。 > 上記の判定の「0」を「1」に変えても > そのイベントの下に作成したKeyState関数を判定に使ったコマンドが実行されませんでした。
下から改良版です
Show
##↑↑指定したキーが押されているか判定します。キーが押されていれば1を、押されていなければ0を返します。メインウィンドウがアクティブになっていない(フォーカスされていない)場合はキーが押されていても0を返します。マウスボタンのキー入力検出の際はさらにマウスカーソルがマップウィンドウ上にない場合も0を返します。(SRCヘルプより抜粋) ##ということなのでメインウインドウを表示させてください。
Talk 藤原忍(攻撃) ウインドーズの時間計測やってやるぜ!;俺のメッセージ終了後、好きな時間にカーソルのどれかを押せよ! End Do
基準時間 = GetTime()
Loop While ((KeyState(37) = 0) And (KeyState(38) = 0) And (KeyState(39) = 0) And (KeyState(40) = 0))
##↑↑Do〜Loop While分は書式が当てはまるなら繰り返し実行という命令文です。 ##そのため、『キーボードのカーソルキーがもし押されたなら』という状態でループを抜けるには上のように『カーソルキーがどれも押されていない状態』で判定しないといけません。 ##> Loop While (KeyState(37) = 0 Or KeyState(38) = 0 Or KeyState(39) = 0 Or KeyState(40) = 0)だと、理屈上では全てのカーソルキーが押されていなければ抜ける事は出来ません。あくまで理屈ですが。(SRC本体の同時押しの判定精度が高ければ判定も可能かもしれませんが、ためしてないのでわかりません。)
Talk 藤原忍(攻撃) $(基準時間/1000)秒くらいか? End
上まで改良版です。 (Talk文が入っているのはより状況を把握しやすいようにと自分が入れただけなので。メッセージの表示していないWait Clickよりはわかりやすいので。本来ならドラモンスターさんの処理が入る部分です。)
関数の使い方を覚えるのはSRCでシナリオを作っていくうえで結構重要なので、ぜひ頑張ってください。
それでは失礼します。
|