我正在使用HTML5画布进行游戏,玩家必须控制一只灰狗来捕捉从天而降的鸡。代码使用箭头键,但我尝试添加触摸事件。当玩家轻拍并握住灰狗的左侧时,向左移动。灰狗的权利,向右移动。我目前的代码如下:
document.body.addEventListener("touchstart", function(e) {
if (e.changedTouches[0].pageX > greyhound.speedX) {
greyhound.speedX -= 10;
greyhound.speedY = innerHeight - 100;
} else {
greyhound.speedX += 1;
greyhound.speedY = innerHeight - 100;
};
greyhound.newPos();
}, false);
}
无论我在哪里挖掘,都会产生看似随机的结果。此外,当我将手指放在屏幕上时,它不会继续移动。欢迎任何帮助或批评。谢谢!
注意: 我试图让它首先只用一个水龙头,然后使其适用于触摸和保持。
答案 0 :(得分:0)
这可能是因为当你只是在听初次触摸时,当你用手指在屏幕上时,你会期待一些事情继续发生。我建议将 touch 和点击处理程序注册到同一个函数,让它工作,然后从那里获取它。
此外,这是一个侧面说明,但在一个快速移动的游戏中,在每个变化像素上调用这样的方法不会超级高效。您可能希望查看与debounce type approach
类似的内容,但可能不完全相同