我在游戏中成为一名玩家,但我无法移动方法。当我单击D按钮时,播放器移动10像素,下一个D单击播放器将移动33像素; 我不知道为什么
function Player(){
let x = 0;
let y = 0;
this.Move = function(){
window.addEventListener("keydown", function (event) {
switch (event.keyCode) {
case 87: //W
console.log("w");
break;
case 83: //S
break;
case 65: //A
x--;
break;
case 68: //D
x++;
break;
}
}, true);
}
this.Draw = function(){
ctx.fillStyle="color:white";
ctx.fillRect(x,y,80,80);
}
}
setInterval(GameLoop,(1000/60));
答案 0 :(得分:0)
首先定义Move
,然后将其设置为keydown事件的处理程序,这样就不会为每个间隔都创建一个新的处理程序。
function Player(){
let x = 0;
let y = 0;
this.Move = function(event){
switch (event.keyCode) {
case 87: //W
console.log("w");
break;
case 83: //S
break;
case 65: //A
x--;
break;
case 68: //D
x++;
break;
}
}
window.addEventListener("keydown", this.Move, true);
this.Draw = function(){
ctx.fillStyle="color:white";
ctx.fillRect(x,y,80,80);
}
}
setInterval(GameLoop,(1000/60));