読者です 読者をやめる 読者になる 読者になる

memo

ゲーム制作やデザインについての個人的メモ

【ティラノスクリプト】メニュー画面を表示している間はキーボード操作を無効にする

ティラノスクリプト

メニュー画面(セーブ、ロード、バックログ含む)を表示しているときにEnterキーやSpaceキーを押すとテキストが進んでしまう(イベントが進行してしまう)のをなんとかしたくてこんな感じになりました。

※例によって本体部分に追加してるので自己責任です

kag.key_mouse.js

$(document).keyup(function(e) {
if ($('.layer_menu').css('display') == 'block') return false;
switch (e.keyCode) {
case 13:
case 32:
if (that.kag.key_mouse.canClick()) $(".layer_event_click").click();
break;
case 27:
that.kag.key_mouse.hideMessage();
break
}
});

赤字が追加部分です。

メニュー画面を表示しているときはlayer_menuというクラスのdisplayプロパティがblockになるので、それを利用してfalseを返してみました。

参考:jQueryで要素の表示・非表示を判定する方法: 小粋空間

一応狙い通りの動きにはなったのですが、なんだかスマートじゃないというか本当にこれでいいのかしら……と不安になったので、こっちの方がいいんじゃない?という情報がございましたら是非共有をお願いします。ムズカシー!