过去几天我一直在努力解决这个问题。我对javascript和jQuery很新,我对去哪里感到有点困惑。
基本上,我按照教程制作了游戏Snake;在桌面上,我正在使用向上,向下,向左和向右的keydown输入。我正在努力使它在jQuery mobile上也是用户和触摸友好的游戏。我已经下载了一些触摸插件,但我不知道从那里去哪里或者它是否有效。
作为我的game.js文件的一部分,
$(document).keydown(function(e){
var key = e.which;
if(key == "37" && d!= "right") d= "left";
else if (key =="38" && d!= "down" ) d= "up";
else if (key == "39" && d!="left") d= "right";
else if (key == "40" && d!="up" ) d= "down";
我现在遇到的问题是:如何实现触摸输入,以便它能够返回到keydown输入?我会将它作为内联包含在我的index.html中吗? game.js文件的一部分?还是一个新文件?
谢谢!我很感激任何帮助/指导!
答案 0 :(得分:0)
可能是一个黑客解决方案,但它确实有效。
1)将keydown函数从匿名块移出到命名函数中,该函数将event对象作为参数。
2)使覆盖控件调用函数覆盖默认事件对象,以将e.which分配给控件对应的任何值。
因此...
这:
$(document).keydown(function(e){
var key = e.which;
if(key == "37" && d!= "right") d= "left";
else if (key =="38" && d!= "down" ) d= "up";
else if (key == "39" && d!="left") d= "right";
else if (key == "40" && d!="up" ) d= "down";
变为
function handle_keys(e){
var key = e.which;
if(key == "37" && d!= "right") d= "left";
else if (key =="38" && d!= "down" ) d= "up";
else if (key == "39" && d!="left") d= "right";
else if (key == "40" && d!="up" ) d= "down";
}
$(document).keydown(function(e){
handle_keys(e);
}
对于你刚刚做的触摸事件
$("#left_button").touchstart(function(e){
e.which = 37;
handle_keys(e);
})