2016-08-19 42 views
1

我使用的是开源游戏,我正在尝试(用于练习)修改它,以便它可以在Android上运行。问题是:Javascript触摸事件在游戏中的句柄

在原始游戏中,您使用空间来跳跃,而且我需要游戏对触发事件做出响应,因此该字符实际上可以跳跃。

游戏中使用此代码保持空格键的事件跟踪:

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

那么,怎样才能我在一个空格键事件将触碰事件?

预先感谢帮助,我是新来的编码,我努力学习:)

回答

1

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

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

这似乎并不工作,触摸不会触发任何动作 – k0spwn

+0

是touchstart/touchend回调称为在某些时候? – fiddler

+0

我看不到任何touchevent动作(但也许我没有这样做,因为我使用Chrome Device mod并使用开发者模式控制台记录动作) – k0spwn