首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >js中的Breakout游戏中的触摸事件

js中的Breakout游戏中的触摸事件
EN

Stack Overflow用户
提问于 2017-10-04 21:57:53
回答 2查看 132关注 0票数 0

我想在越狱游戏中通过触摸来移动划桨。我试着让它作为mouseover事件,但它不能工作,尽管当它用作mouseover事件时它可以工作:

代码语言:javascript
复制
document.addEventListener("touchmove", funcTouchMove, false)


function funcTouchMove(e) {
    var relativeX = e.clientX - canvas.offsetLeft;
    if(relativeX > 0 && relativeX < canvas.width) {
    paddleX = relativeX - paddleWidth/2;
    }
}

通常的目的是触摸球拍,左右移动,像鼠标悬停事件一样玩。如果你有想法,我将不胜感激!

EN

回答 2

Stack Overflow用户

发布于 2021-04-12 11:06:27

我通过添加以下代码使其正常工作:

代码语言:javascript
复制
document.addEventListener("touchmove", touchMoveHandler, false);

function touchMoveHandler(event) { 
  var relativeX = event.touches[0].clientX - canvas.offsetLeft;
  if(relativeX > 0 && relativeX < canvas.width) {
    paddleX = relativeX - paddleWidth/2;
  }
}

更新:如果画布不在页面的边缘,代码的X触摸读数就会偏左。下面的代码让它在您的指尖下跟随。

代码语言:javascript
复制
 var relativeX = event.touches[0].clientX - canvas.getBoundingClientRect().left;
票数 1
EN

Stack Overflow用户

发布于 2017-10-04 22:03:10

有touchstart、touchend、touchmove事件。也许你就是在找那个?

例如,为操纵杆创建一个画布,并附加这些事件,如

代码语言:javascript
复制
canvasJoy.addEventListener("touchstart", inputStart, false);
canvasJoy.addEventListener("touchend", inputEnd, false);
canvasJoy.addEventListener("touchmove", inputMove, false);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46566796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档