js监控键盘的上下左右,多按一个键,另一个键就会失效,怎么解决?

JavaScript012

js监控键盘的上下左右,多按一个键,另一个键就会失效,怎么解决?,第1张

所有的游戏方向键控制思路都是这样的:

设置变量moveX,moveY,初始值是0

监控键盘,当左键按下时moveX--,当左键松开时moveX++,右键按下时moveX++,右键松开时moveX--。上下键同理。

然后每一次游戏逻辑循环(间隔触发的事件,js可以用setInterval),根据moveX、moveY来改变被控制人物的位置。

这样就可以实现人物的平滑移动同时也能解决你所说两个按键同时按下的问题。

$(document).ready(function() {

    document.onkeydown = function a() {

        var div = document.getElementsByClassName("div")[0]

        var num = parseInt(div.innerHTML)

        // 上

        if (event.keyCode == "38") {

            num += 100

            div.innerHTML = num

        }

        // 下

        if (event.keyCode == "40") {

            num -= 100

            div.innerHTML = num

        }

    }

})

<head>

<title>键盘方向键控制表格-学无忧(www.xue51.com)</title>

</head>

<body onKeyDown="keyCheck()">

<table width="80" bgcolor="#FFFFFF" height="60" border="1" bordercolor="#FFFFFF" cellpadding="0" cellspacing="0">

<tr>

<td id="td1" width="80">第一行</td>

</tr>

<tr>

<td id="td2" width="80">第二行</td>

</tr>

<tr>

<td id="td3" width="80">第三行</td>

</tr>

<tr>

<td id="td4" width="80">第四行</td>