【发布时间】:2016-08-19 22:02:37
【问题描述】:
我正在尝试在 Android 上移植游戏,并且在游戏中玩家按空格键进行跳跃,但我找不到任何可行的解决方案来模拟用户触摸屏幕时的空格键事件
这是我到目前为止找到的代码:
/**
* Keep track of the spacebar events
*/
var KEY_CODES = {
32: 'space'
};
var KEY_STATUS = {};
for (var code in KEY_CODES) {
if (KEY_CODES.hasOwnProperty(code)) {
KEY_STATUS[KEY_CODES[code]] = false;
}
}
document.onkeydown = function(e) {
var keyCode = (e.keyCode) ? e.keyCode : e.charCode;
if (KEY_CODES[keyCode]) {
e.preventDefault();
KEY_STATUS[KEY_CODES[keyCode]] = true;
}
};
document.onkeyup = function(e) {
var keyCode = (e.keyCode) ? e.keyCode : e.charCode;
if (KEY_CODES[keyCode]) {
e.preventDefault();
KEY_STATUS[KEY_CODES[keyCode]] = false;
}
};
document.addEventListener("touchstart", function(e) {
document.onkeydown({ keyCode: 32 });
});
document.addEventListener("touchend", function(e) {
document.onkeyup({ keyCode: 32 });
});
我不明白为什么这不起作用...
然后这个:
// jump higher if the space bar is continually pressed
if (KEY_STATUS.space && jumpCounter) {
player.dy = player.jumpDy;
}
以上是所有使用空格键事件的代码
【问题讨论】:
标签: javascript html events touch simulate