我有一个计时器让我的敌人攻击玩家。敌人的攻击会从玩家的生命值中减去 5。当关卡加载(timerLevel)时,游戏开始。当游戏开始时(timerGame),敌人的攻击计时器开始计时。当我杀死敌人时,敌人的攻击计时器停止,游戏计时器停止,等级计时器再次启动。它进入下一个层次。下一个级别再次添加敌人并启动游戏计时器。只是现在,攻击现在减去 10 而不是 5。我怎样才能让计时器在游戏检查等级时滴答一次?
原谅草率的代码,这仍然是菜鸟。
敌人等级:
public var enemyAttackTimer:Timer = new Timer(8000);
enemyAttackTimer.addEventListener(TimerEvent.TIMER, timerenemyattack);
function timerenemyattack(event:TimerEvent)
{
if (Main.tileset[k].hitTestObject(Main.player.visionPoint))
{
Main.player -= 5
}
}
主类:
private var onGameTimer:Timer = new Timer(1000);// For checking the Game
private var onLevelTimer:Timer = new Timer(500, 1);//For checking the Level
levelNumber = 1;
onGameTimer.addEventListener(TimerEvent.TIMER, timerGame);
onLevelTimer.addEventListener(TimerEvent.TIMER, timerLevel);
onLevelTimer.start();
//CREATE THE LEVEL AND ADD ENEMY/PLAYER
function timerLevel(event:TimerEvent)
{
addChild(player);
if (level.levelNumber == 1)
{
addChild(enemy)
enemies = [enemy];
enemy.enemyMoveTimer.start();
enemy.enemyAttackTimer.start();
onGameTimer.start();
}
if (level.levelNumber == 2)
{
addChild(enemy);
addChild(enemy2);
enemies = [enemy, enemy2];
enemy.enemyMoveTimer.start();
enemy.enemyAttackTimer.start();
enemy2.enemyMoveTimer.start();
enemy2.enemyAttackTimer.start();
onGameTimer.start();
}
if (level.levelNumber == 3)
{
addChild(enemy);
addChild(enemy2);
enemies = [enemy, enemy2];
enemy.enemyMoveTimer.start();
enemy.enemyAttackTimer.start();
enemy2.enemyMoveTimer.start();
enemy2.enemyAttackTimer.start();
onGameTimer.start();
}
}
function timerGame(event:TimerEvent)
{
if (enemies.length == 0)
{
trace("NEXT LEVEL");
var i:int = cellContainer.numChildren;
while(i--)
{
cellContainer.removeChildAt(i);
}
levelNumber += 1;
onLevelTimer.start();
onGameTimer.stop();
}
}