设置变量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>