我正在学习js并制作一个俄罗斯方块游戏。我已经让它在PC的部署,但我想添加一些触摸事件的游戏工作在移动部署。但是我被困在这个问题上了:
function touchEnd(e) {
if (Math.abs(offset[0]) > Math.abs(offset[1])) {
playerMove(-1);
}
else if (Math.abs(offset[0]) < Math.abs(offset[1])) {
playerDrop();
}
}
(我在上面的代码中遇到了问题)
我的想法是,当玩家在屏幕(画布)的左边触摸(而不是拖动)时,playerMove(-1)
起作用,当你在右边触摸时,playerMove(1);
起作用,当你触摸屏幕底部时,playerDrop()
起作用。我该怎么做呢?谢谢。
发布于 2018-07-12 04:08:46
这是一个关于如何拆分HTMLElement并基于其发送操作的示例
let box;
document.addEventListener('DOMContentLoaded', ()=>{
box = document.querySelector('#test');
box.addEventListener('click', chooseSide);
});
function chooseSide(e){
const {clientX, clientY} = e;
const {clientHeight, clientWidth} = box
if(clientY > (clientHeight/ 2)){
console.log('bottom')
}else if(clientX < (clientWidth/ 2)){
console.log('left')
} else{
console.log('right')
}
}
#test {
box-sizing: border-box;
width: 100vmin;
height: 100vmin;
border: 10px solid #f00;
}
<canvas id="test"></canvas>
您可以更改Y比较的值,并为"bottom“提供或多或少的空间
https://stackoverflow.com/questions/51293295
复制相似问题