我正在创建一个简单的 2d 游戏,我想将 keydown 键保存到数组中,并在循环中执行它们,这样用户就可以按住一个键,让它看起来像是在不停地移动。
我有一个 setInterval 函数,它就像一个游戏计时器,它一直在循环它。我添加了一个监听器和一个数组来保存密钥。
我检查了数组内的键,它看起来不错,但是函数 moveRight 和 moveLeft 无法正常工作。
这是代码:
this.keysPressed = new Array();
InitGameLoop: function () {
var that = this;
setInterval(function () {
$(document).keydown(function (e) {
var key = e.which;
that.keysPressed.push(key);
for (var i = 0; i < that.keysPressed.length; i++) {
if (that.keysPressed[i] == 38) {
that.moveRight(worldWidth, 10);
}
else if (that.keysPressed[i] == 37) {
that.moveLeft(10);
}
log(that.keysPressed, that.yPos);
that.keysPressed.pop();
}
});
}, 60);
我的问题是:
- 我在做什么?
- 这是一个好主意吗?(如果没有,请随时向我推荐另一个:))
(对不起我的英语不好)