问题是我在游戏中遇到了战斗机的问题。如果我使用 KEY_DOWN 事件和/或 ENTER_FRAME,当我按住踢或拳按钮时,战斗机会持续对敌人造成伤害,但我希望他要么踢,然后返回静止位置,要么踢并能够保持位置,但只造成一次伤害。这是一些代码:
stage.addEventListener(KeyboardEvent.KEY_DOWN, enterAttack);
stage.addEventListener(KeyboardEvent.KEY_UP, exitAttack);
stage.addEventListener(Event.ENTER_FRAME, attackYes);
stage.addEventListener(Event.EXIT_FRAME, attackNo);
function enterAttack(evt:KeyboardEvent):void
{
if (evt.keyCode == 84)
{
attack = true;
}
}
function exitAttack(evt:KeyboardEvent):void
{
attack = false;
}
function attackYes(evt:Event):void
{
if (attack)
{
hero.gotoAndStop("punch1");
checkHitRed();
checkIfDead();
}
}
function attackNo(evt:Event):void
{
if (!attack)
{
hero.gotoAndStop("still");
}
}
我试图将监听器移到某个地方,但这总是让战斗机看起来没有进行任何攻击。
有什么办法可以防止按住踢/拳按钮?
任何帮助表示赞赏