0

私はゲーム Web ページに取り組んでおり、キーボード入力、つまり上、下、左、右をキャプチャし、それを場所変数にフィードする方法を知る必要がありますが、テキスト ボックスを使用したくありません。入力用の HTML コード。私はすでに自分の世界を描くために要素を使用しています。ゲームがタブで開いているときに、ユーザーが画面上の特定の場所をクリックすることなく、さまざまなブラウザーのオペレーターキーを除くすべてのキーボード入力をキャプチャできるようにする方法はありますか? 私は HTML の経験が非常に限られていますが、HTML に組み込まれる方法で Python でゲームを構築しているため、コーン型の回答のみが必要です。

私もタイミングループを使用しており、タイミングループ内で onkeypress イベントをキャプチャできるようにする必要があります。

どの要素を使用する必要がありますか? 要素のどのプロパティ?

4

1 に答える 1

1

特にループ内でプレスをキャプチャするには、現在保持されているキーをどこかに保存し、 と を使用してdocument.onkeydownそれらdocument.onkeyupを変更する必要があります。

var heldKeys = [];

document.onkeydown = function(ev) {
    heldKeys.push(ev.keyCode);
}

document.onkeyup = function(ev) {
    var i = heldKeys.indexOf(ev.keyCode);
    if (i != -1) {
        heldKeys.splice(i, 1);
    }
}

ループ内で、 の内容を確認しますheldKeys。それをループして、各キーを操作するだけです。

keyCode は "a" "b" などに正確に対応するわけではなく、ASCII コードになることに注意してください。また、ブラウザの互換性の問題が発生する場合と発生しない場合があります。

于 2011-09-15T16:10:16.237 に答える