在Javascript看似随机的触摸事件?

时间:2017-07-09 23:33:36

标签: javascript html html5 touch

我正在使用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);
}

无论我在哪里挖掘,都会产生看似随机的结果。此外,当我将手指放在屏幕上时,它不会继续移动。欢迎任何帮助或批评。谢谢!

注意: 我试图让它首先只用一个水龙头,然后使其适用于触摸和保持。

1 个答案:

答案 0 :(得分:0)

这可能是因为当你只是在听初次触摸时,当你用手指在屏幕上时,你会期待一些事情继续发生。我建议将 touch 点击处理程序注册到同一个函数,让它工作,然后从那里获取它。

reference on touch events

此外,这是一个侧面说明,但在一个快速移动的游戏中,在每个变化像素上调用这样的方法不会超级高效。您可能希望查看与debounce type approach

类似的内容,但可能不完全相同