我目前正在开发一个javascript游戏,我无法在移动设备上使用触摸控制。这是一个简单的游戏,你可以按下箭头跳跃,或向下箭头滚动。
我还想要实现触摸控制,因此触摸/控制左边的显示将使字符滚动,并通过触摸/握住屏幕的右侧,字符跳跃。
这是为向上和向下箭头工作的代码:
var KEY_CODES = {
38: 'up',
40: 'down'
};
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;
}
};
然后我就可以让他的角色做些事情:
if (KEY_STATUS.up) { stuff and things }
有什么建议、提示、建议或可能的代码碎片可以帮助我吗?提前感谢!
发布于 2014-04-08 15:32:11
你应该能够使用触摸事件。在许多情况下,您可以使用为按键编写的相同函数,也可以单独编写它们。下面是一个例子
var touchedElement = document.getElementById("myElementToBeTouched");
touchedElement.addEventListener("touchstart", funcTouchStart, false);
touchedElement.addEventListener("touchend", funcTouchEnd, false);
touchedElement.addEventListener("touchmove", funcTouchMove, false);
function funcTouchStart(e) {
//code to do what you want like set variables and check where on screen touch happened
var touches = e.changedTouches; //gets array of touch points, to get position
}
function funcTouchEnd(e) {
//code
}
function funcTouchMove(e) {
//code
}
要使它们响应左或右屏幕,您可以使用这些事件附带的touchesi.pageX,并将操作设置为只有在touchesi.pageX =0的屏幕25% (左)或最后25%为touchesi.pageX =屏幕/视口宽度的情况下才会发生。
这不是一个完整的工作例子,但我希望它足以给你一个想法,你可以做什么。如果您需要更多有关这些事件的帮助,请尝试查看MDN示例之一,如:events
https://stackoverflow.com/questions/22794613
复制相似问题