簡體   English   中英

AS3 hitTestObject未正確注冊

[英]AS3 hitTestObject not registering correctly

我想通過單擊AttackButton並使用hitTestObject來命中目標3次,其壽命也將從3減少到0,然后再命中目標,如果壽命為0,它將轉到“祝賀”屏幕或關鍵幀。 我的問題是,它只會在我第一次擊中目標時進行注冊,而在我第二次,第三次擊中目標之后什么也沒有發生……依此類推。 請幫忙?

    var life = 3;

    attackButton.addEventListener (MouseEvent.CLICK, attack01);

    function attack01 (e:MouseEvent): void {
        colliderPlayer.gotoAndPlay(2);
    } 

    stage.addEventListener(Event.ENTER_FRAME, lifeEnemy);

    function lifeEnemy(evt:Event): void {
        if(this.colliderPlayer.hitTestObject(boss)){
            stage.removeEventListener(Event.ENTER_FRAME, lifeEnemy);
            life = life - 1;
            trace(lifeEnemy);

            if(lifeEnemy==0) {
                MovieClip(root).gotoAndStop('ending');
            }

        }
    }

命中測試停止運行的原因是,如果命中測試成功,則您將刪除偵聽器,以在下一次檢查命中測試。 我指的是:

stage.removeEventListener(Event.ENTER_FRAME, lifeEnemy);

如果要在敵人的生命為0時停止檢查命中率,請執行以下操作:

var life = 3;

attackButton.addEventListener (MouseEvent.CLICK, attack01);

function attack01 (e:MouseEvent): void {
    colliderPlayer.gotoAndPlay(2);
} 

stage.addEventListener(Event.ENTER_FRAME, lifeEnemy);

function lifeEnemy(evt:Event): void {
    if(this.colliderPlayer.hitTestObject(boss)){
        life = life - 1;
        trace(life);

        if(life==0) {
            stage.removeEventListener(Event.ENTER_FRAME, lifeEnemy);
            MovieClip(root).gotoAndStop('ending');
        }

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM