游戏中的 Javascript 触摸事件句柄

标签 javascript android html touch

我正在使用一款开源游戏,并且正在尝试(作为练习)对其进行修改,以便它可以在 Android 上运行。问题是:

在原始游戏中,您使用空间跳跃,我需要游戏响应触觉事件,这样 Angular 色才能真正跳跃。

游戏使用此代码来跟踪空格键事件:

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;
  }
};

// jump higher if the space bar is continually pressed
if (KEY_STATUS.space && jumpCounter) {
  player.dy = player.jumpDy;
}

那么如何在空格键事件中转换触摸事件呢?

在此先感谢您的帮助,我是编码新手,正在努力学习 :)

最佳答案

您可以将以下代码添加到您的脚本中,以模拟触摸事件中的空格键事件。

  document.addEventListener("touchstart", function(e) {
    document.onkeydown({ keyCode: 32 });
  });
  document.addEventListener("touchend", function(e) {
    document.onkeyup({ keyCode: 32 });
  });

关于游戏中的 Javascript 触摸事件句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39041374/

相关文章:

android - 无法 “Use Default Gradle Wrapper”

php - 如何使用示例 49 和序列化 TCPPDFtagParameters 而不是 write1DBarcode 将 TCPDF 条码放入 html 表中?

android - Android 上的冗余运动传感器?

javascript - 如何将变量和数据从PHP传递到JavaScript?

javascript - 了解基本的模块化模式私有(private)和公共(public)功能

javascript - 如何加载到特定路径

android - 在谷歌地图中获取标记的纬度和经度

html - 将元素放在窗口的右上角

javascript - JQuery 用户界面 : How to remove Icon from specific Accordion group?

javascript - slideDown 立即 li 并向上滑动其他 li 元素