問題は、ゲーム内の戦闘機に問題があることです。KEY_DOWN イベントおよび/または ENTER_FRAME を使用すると、キックまたはパンチ ボタンを押したままにすると、ファイターは継続的に敵にダメージを与えますが、たとえば、キックしてから静止位置に戻るか、キックしてからできるようにしたいです。位置を保持しますが、ダメージを与えるのは 1 回だけです。ここにいくつかのコードがあります:
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");
}
}
どこかでリスナーを削除しようとしていましたが、それは常に戦闘機が攻撃をしていないように見えました.
キック/パンチボタンを長押ししないようにする方法はありますか?
どんな助けでも大歓迎です