[英]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.