我正在制作一款简单的手机游戏。
目标是:
如果在屏幕的右半部分感应到触控启动事件,请进行角色漫步。
如果在右半部分感受到touchend事件,则停止角色。
如果屏幕左半部分发生touchend事件,则跳转角色。
我的逻辑非常适用于鼠标上下事件,因此我非常确定在touchstart和end函数中可以做些什么。
如果两个手指用作一个按压,它似乎工作正常。
如果只使用一根手指,它就无法正常工作:触摸任何地方都会开始运动,但没有任何东西可以阻止它。
以下是触摸输入和相关功能的代码:
CheckWhichScreenHalf = function(e) {
loc = WindowToCanvas(e.pageX, e.pageY);
onScreenY = loc.y >= 0 && loc.y <= gameCanvas.height;
leftSideX = loc.x >= 0 && loc.x < gameCanvas.width/2;
rightSideX = loc.x > gameCanvas.width/2 && loc.x <= gameCanvas.width;
if (onScreenY && leftSideX){
return 'left';
}
else if (onScreenY && rightSideX){
return 'right';
}
else return 'neither';
};
TouchMove = false;
TouchJump = false;
gameCanvas.ontouchstart = function(e){
if (imagesHaveBeenLoaded) {
e.preventDefault();
for (var i = 0; i < e.touches.length; i++){
var side = CheckWhichScreenHalf(e.touches.item(i));
if (side === 'right'){
TouchMove = true;
}
}
}
}
gameCanvas.ontouchend = function(e){
if (imagesHaveBeenLoaded) {
e.preventDefault();
for (var i = 0; i < e.touches.length; i++){
var side = CheckWhichScreenHalf(e.touches.item(i));
if (side === 'right'){
TouchMove = false;
}
else if (side === 'left'){
playerJumping = true;
}
}
}
}
游戏可以在这里播放:http://webstudentwork.com/jgossling/MMWD/mp2/mp2.html