我试图在我的 switch 语句中使用一个变量,因为它使玩家的移动变得平滑。这是我流畅的玩家移动代码。
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressedDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyPressedUp);
stage.addEventListener(Event.ENTER_FRAME,movehero);
function keyPressedDown(event:KeyboardEvent){
if(event.keyCode==37){leftArrow = true;}
else if (event.keyCode == 39){rightArrow=true;}
else if(event.keyCode ==38){upArrow = true;}
else if(event.keyCode ==40){downArrow = true;}
}
function keyPressedUp(event:KeyboardEvent){
if(event.keyCode==37){leftArrow = false;}
else if (event.keyCode == 39){rightArrow=false;}
else if(event.keyCode ==38){upArrow = false;}
else if(event.keyCode ==40){downArrow = false;}
}
function movehero(event:Event){
if(leftArrow){hero.x -= 10;}
if(rightArrow){hero.x += 10;}
if(upArrow){hero.y -= 10;}
if(downArrow){hero.y += 10;}
}
我正在尝试将它实现到我现有的代码中。我需要用于碰撞的 switch 语句。
此代码运行良好,但玩家移动非常缓慢。
提前致谢
I am trying to acheive something like this, but this does not work
var leftArrow:Boolean= false;
var rightArrow:Boolean= false;
var upArrow:Boolean= false;
var downArrow:Boolean=false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressedDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyPressedUp);
stage.addEventListener(Event.ENTER_FRAME,movehero);
function keyPressedDown(event:KeyboardEvent){
if(event.keyCode==37){leftArrow = true;}
else if (event.keyCode == 39){rightArrow=true;}
else if(event.keyCode ==38){upArrow = true;}
else if(event.keyCode ==40){downArrow = true;}
}
function keyPressedUp(event:KeyboardEvent){
if(event.keyCode==37){leftArrow = false;}
else if (event.keyCode == 39){rightArrow=false;}
else if(event.keyCode ==38){upArrow = false;}
else if(event.keyCode ==40){downArrow = false;}
}
function movehero(event:Event){
switch(event){
case leftArrow:
hero.x -=10;
break;
case rightArrow:
hero.x +=10;
break;
case upArrow:
hero.y -=10;
break;
case downArrow:
hero.y += 10;
break;
default :
break;
}
}