我正在尝试使用动作脚本 2.0 制作一个简单的平台游戏,但我在从键盘获取输入时遇到问题。我有两个函数“myKeyDown”和“myKeyUp”,只要按下/释放一个键就会被调用。
keyListener.onKeyDown = function(){
myKeyDown();
}
keyListener.onKeyUp = function(){
myKeyUp();
}
这些函数使用 Key.getCode() 方法检查按下了哪个键。它适用于 myKeyDown,但适用于 myKeyUp。如果(例如)我先按 A(向左移动),然后按 W(跳跃),然后释放 W,然后释放 A,就会发生错误。玩家不会停止移动(即使这是你释放时应该发生的情况一个)
我理解这里的问题。Key.getcode 返回最后按下的键的代码,我想要的是最后释放的键的代码。我一直在寻找这样的功能几个小时,但我没有找到任何东西。
这是 myKeyDown 和 myKeyUp 函数的代码
function myKeyDown(){
//A
if(Key.getCode() == 65){
velX=-3;
}else
//D
if(Key.getCode() == 68){
velX=3;
}else
//W
if(Key.getCode() == 87){
if(isInAir == false){
jump();
}
}
}
function myKeyUp(){
//A
if(Key.getCode() == 65){
if(velX==-3){
velX=0;
}
}else
//D
if(Key.getCode() == 68){
if(velX==3){
velX=0;
}
}
}