JQuery を使用して HTML ゲームのキー押下を監視していますが、jquery コードをゲームループに追加すると、keydown が定義されていないというエラーが表示されます。
<html>
<head>
//...Included JS files JQuery, and a JQuery plugin to bind keydown
// to a variable and to translate all the keypresses into
// names so that we can monitor keypress by keydown.left...
</head>
<body>
<script type="text/javascript">
var gLoop;
//...code excluded for brevity...
var GameLoop = function() {
//...code excluded...
if(keydown.left) {
//do stuff
}
gLoop = setTimeout(GameLoop, 1000/50);
}
</script>
</body>
</html>
このコードは、keydown が定義されていないというエラーを受け取ります。このコードを試したときはいつでも:
setInterval(function(){
if(keydown.left) alert("Working");
}, 1000/50);
それは正常に動作します!!! 私は何を間違っていますか??? 私の完全なコードは、こちらの GitHubにあります。
jQuery バージョン 1.4.4 を使用しました。https://raw.github.com/figitaki/PuzzleMan/master/key_status.jsで入手できる hotkeys プラグインを使用しました。キーダウンをバインドするために使用したコードは次のとおりです。
$(function() {
window.keydown = {};
function keyName(event) {
return jQuery.hotkeys.specialKeys[event.which] ||
String.fromCharCode(event.which).toLowerCase();
}
$(document).bind("keydown", function(event) {
keydown[keyName(event)] = true;
});
$(document).bind("keyup", function(event) {
keydown[keyName(event)] = false;
});
});
アップデート:
コードを実行してもエラーは発生しなくなりましたが、左キーを押しても応答がありません。