0

AS3 の TIMER について質問があります

ステージにゾンビのオブジェがあるので、来てHEROを攻撃してもらいたいです。

私がやりたいことは:

  1. ゾンビが主人公に向かって歩く
  2. 彼が攻撃するのに十分近づくと、彼は攻撃を開始します。
  3. 問題:私は彼に5秒ごとに1回だけ攻撃させて、ヒーローが彼を打ち返すチャンスがあるようにしたい. 問題は、私がタイマーに慣れていないことであり、私を助けるヒント/ツット/答えをまだ見つけることができませんでした. 新しいタイマー関数またはゾンビ関数のどこにタイマーを配置すればよいかわかりません。

ありがとうございました :)

ここにコードがあります

if (zombie.x>hero.x+50)
{
    zombie.x-=5;
    zombie.scaleX=-1;

    if(zombie.x<hero.x+100){
        zombie.gotoAndStop("attack"); 
        //so that the zombie attacks when the hero is in range

    }
}
4

2 に答える 2

0

次のようなことができます:

var timer:Timer = new Timer(5000);//that's 5 second

if (zombie.x>hero.x+50)
{
    zombie.x-=5;
    zombie.scaleX=-1;

    if(zombie.x<hero.x+100){
        attack();
    }
}

function attack(  ) : void
{
  // attack the first time
  zombie.gotoAndStop("attack"); 

 //than launch the timer
  timer.addEventListener(TimerEvent.TIMER, repeatAttack );
  timer.start();
}

//will be called every 5000 ms == 5 sec
function repeatAttack ( event : TimerEvent ) : void
{
 zombie.gotoAndStop("attack"); 
}

//if you want to stop the attack you can use this function for example

function stopAttack() : void
{
   timer.removeEventListener(TimerEvent.TIMER, repeatAttack );
   timer.stop();//stop timer
   timer.reset();//resetCount to zero   
}

これが問題の解決に役立つことを願っています

于 2013-03-15T08:44:55.840 に答える
0

ゾンビに「アイドル」、「ウォーキング」、「攻撃」のアニメーションを定義する必要があります。これまでのところ、ゾンビが「攻撃」姿勢に切り替わり、そこにとどまるだけです。また、ゾンビをクラスにして、攻撃するタイミングと攻撃を停止するタイミング (アイドル アニメーションに戻る) を認識して、独自のアニメーションを制御できるようにします。最後に、「このゾンビが再び攻撃できるか」というフラグを設定します。これは、ゾンビが攻撃したときに true に設定されflash.utils.setTimeout()、適切なパラメーターを指定して呼び出して、このフラグをリセットする関数を呼び出します。この時間ベースの関数は、Actionscript をよりよく学習するまでは、単純な 1 回限りの呼び出しで十分です。

于 2013-03-15T08:06:32.400 に答える