Затем создайте экземпляр класса «SecondsTimer’ для каждого необходимого вам таймера. Обратите внимание, что функции таймера содержат отладочный код, который печатает сообщения в окне трассировки MemBrain.
Вы можете удалить соответствующий код, если не хотите, чтобы какие-либо сообщения печатались функциями таймера.
– — – — – — – — – — – — – — – — – — – — – — – — – —
*/
/* Глобальная переменная для подсчета экземпляров класса. Используется только для генерации отладочных сообщений.
AngelScript пока не поддерживает статические члены класса. Вот почему это должна быть глобальная переменная.
*/
uint gSecondsTimerInstanceCount = 0;
class SecondsTimer
{
// Constructor without arguments
SecondsTimer ()
{
mId = gSecondsTimerInstanceCount++;
mReferenceTime = Now ();
}
// Constructor with initial elapse time [s] (начальное время истечения)
SecondsTimer (uint seconds)
{
mId = gSecondsTimerInstanceCount++;
// Получить текущее время, добавить прошедшие секунды и сохранить полученное время.
int now = Now ();
mReferenceTime = now + seconds;
// Только для целей отладки:
/*
string timeStr;
TimeToString (now, timeStr);
Trace (timeStr);
TimeToString (mReferenceTime, timeStr);
Trace (» Timer " + mId + " started. Will elapse at:" + timeStr + "\n»);
строка timeStr;
TimeToString (now (сейчас), timeStr);
Trace (Трассировка) (timeStr);
TimeToString (mReferenceTime, timeStr);
Trace («Таймер» + mId + «запущен. Пройдет по адресу (закончится):" + timeStr + "\ n»);
*/
}
~SecondsTimer ()
{
gSecondsTimerInstanceCount – ;
}
// Проверяем, истек ли таймер
bool IsElapsed ()
{
int now = Now ();
bool elapsed = now> = mReferenceTime;
return elapsed;
}
// Запускаем таймер по истечении заданного времени
void Start (uint seconds)