Добавление времени к таймеру / счетчику - PullRequest
0 голосов
/ 28 ноября 2011

Я просмотрел всю сеть, и каждый может научить вас, как сделать таймер для вашей игры или обратного отсчета, но я не могу понять, как добавить время к уже отсчитывающему таймеру.

Так вот мой счетчик класса:

package 
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.text.TextField;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;

public class Score extends MovieClip
{
        public var second:Number = 0;
        public var timer:Timer = new Timer(100);
        private var stageRef:Stage;

        public function Score(stageRef:Stage)
        {
            x = 560.95;
            y = 31.35;
            this.stageRef = stageRef;

            timer.addEventListener(TimerEvent.TIMER, scoreTimer);
            timer.start();
        }

        public function scoreTimer(evt:TimerEvent):void
        {
            second += 1;
            scoreDisplay.text = String("Score: " +second);
        }

Это работает без каких-либо проблем или проблем и просто продолжает считать вверх со скоростью 100 мс, я хочу знать, как добавить, скажем, 30 секунд, если что-то произойдет в моей игре, скажем, вы убили врага, например.

Пожалуйста, помогите!

Ответы [ 2 ]

2 голосов
/ 28 ноября 2011

Это может быть так же просто, как вызов метода, который обновляет ваше свойство second.Ваши методы в конечном итоге будут выглядеть примерно так:

public function scoreTimer(evt:TimerEvent):void
{

    second += 1;
    updateDisplay();
}

public function addPenalty(penalty:Number):void
{

    second += penalty;
    updateDisplay();
}

private function updateDisplay()  : void
{

    scoreDisplay.text = String("Score: " +second);
}

Поскольку вы не используете значения timer для обновления дисплея, сброс или задержка не изменят ваш ScoreDisplay.Вместо этого он будет продолжать считать, где остановился, потому что само свойство second не сбрасывается во время этих действий.

0 голосов
/ 28 ноября 2011

Я думаю, Timer.delay может быть использовано для этого, например, Timer.delay = time_remaining + 30000, чтобы добавить 30 секунд к таймеру. Конечно, это означает, что вы должны знать time_remaining

Если вы установите интервал задержки во время работы таймера, таймер перезапустится с той же итерацией repeatCount.

цитата отсюда: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/Timer.html#delay

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...