【发布时间】:2022-01-24 20:39:52
【问题描述】:
我正在尝试为我的迷你游戏制作画布边界。我已经用一个可以随箭头移动的角色创建了画布。我使用 switch 语句来执行此操作,下一步是创建边界,我不知道该怎么做?这就是 Javascript 代码目前的样子:
function place(id,x_pos, y_pos)
{
let element = document.getElementById(id);
element.style.position = "absolute";
element.style.left = x_pos + 'px';
element.style.top = y_pos + 'px';
}
setInterval(update,1);
function update()
{
document.addEventListener('keydown', keyPress);
}
function keyPress(e)
{
let x = e.keyCode;
let character = document.getElementById("character").getBoundingClientRect();
let canvasWidth = document.getElementById("canvas").getBoundingClientRect();
let left = parseInt(character.left,10);
let top = parseInt(character.top,10)
switch (x) {
//left
case 37:
place('character', left-15, top);
break;
//right
case 39:
place('character', left+15, top);
break;
//up
case 38:
place('character', left, top-15);
break;
//down
case 40:
place('character', left, top+15);
break;
}
console.log(x)
return x
}
update()
【问题讨论】:
-
我没有看到更新功能的任何原因。你只需要添加一次事件监听器,我看不出重复添加它有什么用。更新函数对游戏逻辑很有用,但在这种情况下它似乎是多余的。我会移动“document.addEventListener('keydown', keyPress);”在更新函数之外,目前只需注释掉间隔、函数和对函数的调用,直到它真正需要为止。我不确定是否有更好的地方提出这个建议,但我想我应该指出来。
标签: javascript canvas switch-statement boundary