JS_双人格斗游戏 _移动键同时按下问题_已解决

JS_双人格斗游戏 _移动键同时按下问题

问题描述:

    if(keys.a.pressed){
        player.velocity.x = -1;
    }else if (keys.d.pressed){
        player.velocity.x = 1;
    }
这段代码在animate()循环函数中,接收键盘传来的参数,控制角色位置坐标的改变
但是,这是一个if-else条件判断语句,只能有一个生效
如果同时按下'a'和'd',函数只会判定角色朝左走!

解决方法

    if(keys.a.pressed && player.lastKey=='a'){
        player.velocity.x = -1;
    }else if (keys.d.pressed && player.lastKey=='d'){
        player.velocity.x = 1;
    }
给对象一个属性-lastKey,用来记录最后的按键是什么,当同时按下'a'和'd'时,根据lastKey的值控制角色朝左走还是朝右走
posted @ 2023-07-13 21:56  Espre-sso  阅读(59)  评论(0)    收藏  举报