按下按钮时移动角色/相机的功能

时间:2014-09-11 12:50:10

标签: javascript html function button

我是新来的,也是网络编码的新手。所以我试图在按下按钮时创建一个移动我的游戏角色的功能。按下按钮时,布尔值变为“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);
});

1 个答案:

答案 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(密钥)。