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

用js写了一个小游戏,代码示意如下:<script>functionjumpPage(){if(event.keyCode==37){//左fun_a();}if(eve... 用js写了一个小游戏,代码示意如下:
<script>
function jumpPage() {
if (event.keyCode==37){//左
fun_a();
}
if (event.keyCode==38){//上
fun_b();
}
if (event.keyCode==39){//右
fun_c();
}
if (event.keyCode==40){//下
fun_d();
}
}
function fun_a(){
//向左的操作
}

function fun_b(){
//向上的操作
}

function fun_c(){
//向右的操作
}

function fun_d(){
//向下的操作
}
document.onkeydown=jumpPage;
</script>

现在有个问题,举个例子:
当我按下左,它能一直向左走,但这时候不松开左,按下上,它只能往上走,不能往左上走
松开上,不松开左,就停住了!

但是同时一起按住左和上,却能向左上走?
咋解决?
如果写页面游戏,经常会出现吧?
本人是是学php的,js这块不是很熟
请指教!
展开
 我来答
davidaq
推荐于2016-03-19 · TA获得超过879个赞
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:411万
展开全部
所有的游戏方向键控制思路都是这样的:
设置变量moveX,moveY,初始值是0
监控键盘,当左键按下时moveX--,当左键松开时moveX++,右键按下时moveX++,右键松开时moveX--。上下键同理。
然后每一次游戏逻辑循环(间隔触发的事件,js可以用setInterval),根据moveX、moveY来改变被控制人物的位置。
这样就可以实现人物的平滑移动同时也能解决你所说两个按键同时按下的问题。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式