我正在制作一个简单的小行星风格,自上而下的射击游戏。游戏中有一个道具可以让玩家角色在短时间内对敌人的火力无敌。
一段时间后,加电效果应该会慢慢消失,但事实并非如此。一旦收集了加电,它就不会消失,使玩家立于不败之地。
我有两个与盾牌(加电)有关的课程。
Game.as:在 Game 函数中有一行说游戏开始时盾牌不可见(ship.shield.visible = false;)
同一行在我的 gameOver 函数中,它指出当游戏结束时,盾牌不应该出现。
PowerUp.as:这是整个 PowerUp.as 的代码
包裹{
import flash.display.MovieClip;
import flash.events.Event;
public class PowerUp extends MovieClip{
var speed:Number;
var type:Number;
function PowerUp(){
speed = 2;
type = Math.floor(Math.random()*3+1);
this.x = 650;
this.y = Math.random()*200+50;
addEventListener("enterFrame", enterFrame);
}
function enterFrame(e:Event){
this.rotation -= 2;
this.x -= speed;
if(this.hitTestObject(Game.ship)){
if(type == 1){
Game.ship.takeDamage(Game.ship.health - Game.ship.maxHealth);
}
if(type == 2){
for(var i in EnemyShip.list){
EnemyShip.list[i].takeDamage(1);
}
}
if(type == 3){
Game.ship.shield.visible = true;
Game.ship.shield.alpha -= 0.05;
if(Game.ship.shield.alpha == 0){
Game.ship.shield.visible = false;
Game.ship.shield.alpha = 1;
}
removeEventListener("enterFrame", enterFrame);
stage.removeChild(this);
}
if(this.x < -30){
removeEventListener("enterFrame", enterFrame);
stage.removeChild(this);
}
}
}
}