キーイベント中にキーイベントを発生させない方法


サンプルの「迷路ゲームを作る」では、キーイベント中に再びキーイベントを発生させないようにするためと思われる記述がありますが、どうやら間違っている気がします。(バージョンの違いのせいかも)

//エラーが起きるソース
母艦の、キー押した時を、キーイベントに、設定。
待機
*キーイベント
母艦の、キー押した時を、未定義に、設定。
//キーイベントの内容
母艦の、キー押した時を、キーイベントに、設定。
待機。

これは何かキーを押した時にロックして、イベントが再び起きないようにしているのだと思うのですが、連続でキーを押すとあろうことか以下のエラーが出ます。

[エラー] himapad.bak(7行目): "未定義"は未定義の命令です。
(;o;)<綴りミスか、命令の引数に注意!

これはラベル「未定義」にジャンプしようとして失敗しているのです。
キーイベントの内容に時間がかかるものをつくると連続でキーを押した時に「未定義」に飛んでしまうんです。
ならば解決策として「未定義」なるラベルを作ってやればよいのでしょうか?

//これでよい?
母艦の、キー押した時を、キーイベントに、設定。
待機
*キーイベント
母艦の、キー押した時を、未定義に、設定。
//キーイベントの内容
母艦の、キー押した時を、キーイベントに、設定。
待機。
*未定義
待機。

残念ながらこれではダメです。なぜならキーを2回連続で押した時、最終的にキー押した時が未定義になるからです。

キーを押した時に何も起きないようにロックするにはこのようにします。

//これでOK!
母艦の、キー押した時を、キーイベントに、設定。
待機
*キーイベント
母艦の、キー押した時を、「」に、設定
//キーイベントの内容
母艦の、キー押した時を、キーイベントに、設定。
待機。

キー押した時を「」(なにもなし)にすることでキー操作によって別のイベントが起こることを防ぐことができます。

//サンプル(ひまわり1.77)
母艦の、キー押した時は、キーイベント。
ラベルを、作る。
ラベルの、テキストは、0
待機
*キーイベント
母艦の、キー押した時を、「」に、設定
0.5秒、待つ
ラベルの、テキストは、(ラベルの、テキスト)+1
母艦の、キー押した時は、キーイベント。

※ちなみに、キーイベント内の母艦の、キー押した時〜の行2つを削除した場合、キーを押した回数だけキーイベントが実行されます。
1秒で10回キーを押したとすると、10回実行するので合計5秒かかります。


ひまわりのコーナーに戻る
戻る