网上找了个解决方案,效果不太好
document.onkeydown=function (e){
console.log(e.key);
switch (e.key){
case "ArrowLeft":
dx-=5;
break;
case "ArrowRight":
dx+=5;
break;
case "ArrowUp":
dy-=5;
break;
case "ArrowDown":
dy+=5;
break;
}
}
document.onkeyup=function (e){
console.log(e.key);
switch (e.key){
case "ArrowLeft":
dx=0;
break;
case "ArrowRight":
dx=0;
break;
case "ArrowUp":
dy=0;
break;
case "ArrowDown":
dy=0;
break;
}
}
window.setInterval(()=>{
// ...
},100);
1
LifStge 2021 年 7 月 30 日
比如换个思路 上下左右不变 再加几个其他按键呢 UI 说明一下就行了 再比如小键盘的九宫格按键
|
2
gouflv 2021 年 7 月 30 日 via iPhone
监听方式没问题,应该去了解下向量,模拟加速度和合力
|
3
joshua7v 2021 年 7 月 31 日 via iPhone
你这样对角线速度会快
同楼上,你需要了解向量 |
4
codehz 2021 年 7 月 31 日
(建议换个模型
你看你可以知道什么时候按下,什么时候释放对吧 所以可以做个对象记录方向键的按下状态,然后再根据这个对象的状态计算加速方向 两层抽象之后这个问题就很简单了 |
5
ShaunSS 2021 年 7 月 31 日
监听没问题,像素要做下归一不然斜向会动的很快
|