我是新来的,也是网络编码的新手。所以我试图在按下按钮时创建一个移动我的游戏角色的功能。按下按钮时,布尔值变为“true”,角色移动。我试图以某种方式这样做。有人可以点亮我做这项工作的最佳方法吗?我还需要为所有其余按钮(a,s,d,箭头)执行此操作。
var wButton = false;
function newfunction()
document.querySelector('#keyButtonW').addEventListener('mousedown', function(event) {
keyButtonPressed("wButton", true);
});
document.querySelector('#keyButtonW').addEventListener('mouseup', function(event) {
keyButtonPressed("wButton", false);
});
document.querySelector('#keyButtonW').addEventListener('mouseleave', function(event) {
keyButtonPressed("wButton", false);
});
答案 0 :(得分:0)
假设translate是一种移动你的char的方法,也许你应该做一个大maskArray:
var keyboard = [];
function keyDown(e)
{
var key = event.keyCode || event.which;
keyboard[key] = true;
}
function keyUp(e)
{
var key = event.keyCode || event.which;
delete keyboard[key];
}
function keyAction() {
for (i in keyboard)
{
if (keyboard[i] == true)
{
switch(eval(i))
{
case 90: //Z
character.translateY(-1);
break;
case 83: //S
character.translateY(1);
break;
case 81: //Q
character.translateX(-1);
break;
case 68: //D
character.translateX(1);
break;
}
}
}
return false;
}
document.addEventListener("keydown", keyDown, false);
document.addEventListener("keyup", keyUp, false);
只需将keyAction()放入主循环/渲染循环中。
这个值的目的是当你点击一个按钮时不会发生滞后,并帮助进行多次按压管理=)
修改强>
要获取密钥编号,只需在keyDown()的末尾放置console.log(密钥)。