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的值控制角色朝左走还是朝右走
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程