计时器滴答增加

时间:2013-10-18 18:34:44

标签: actionscript-3 timer

我有一个让敌人攻击玩家的计时器。敌人的攻击从玩家的健康中减去5。当等级加载(timerLevel)游戏开始时。当游戏开始时(timerGame),敌人的攻击计时器启动。当我杀死敌人时,敌人的攻击计时器停止,游戏计时器停止,并且等级计时器再次启动。它进入了一个新的水平。下一级再次添加敌人并启动游戏计时器。只是现在,攻击现在减去10而不是5.当游戏检查等级时,如何让计时器打勾一次?

请原谅邋code的代码,这仍然是一个菜鸟。

敌人类:

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();
    }

}

1 个答案:

答案 0 :(得分:1)

你是否关心移除你的TimerEvent听众,因为如果你不这样做,就敌人而言,你可以让先前敌人的计时器击中你的玩家和新玩家。
当您不再需要时,请小心阻止您的计时器并移除您的听众。

希望有所帮助