Возвращает текущее время в миллисекундах (1 секунда = 1000 миллисекунд). Помните, что возвращаемое значение не может быть больше 4294967296 (что соответствует приблизительно 48 суткам). По-этому каждые 48 суток отсчет будет начинаться с 0. По этой причине данная функция не годится для определения времени, прошедшему между двумя датами, но широко используется для различных таймеров в играх или приложениях.
К примеру, ситуация из жизни: Вы пишите простую игру типа Тетриса и вам нужно чтобы фигура двигалась вниз со скоростью 1 клетка в секунду. При этом ещё нужно отлавливать нажатия клавиш влево/вправо/огонь, а это значит, что функция Delay вам не подойдет. В этом случае главный цикл опроса клавиатуры можно оформить как приведенный ниже:
function GetRelativeTimeMs: integer;
|
Пример
...
lastSavedTime := GetRelativeTimeMs; // Инициализация таймера
repeat
// Считываем текущую нажатую клавишу
key := GetKeyClicked;
if KeyToAction(key) = GA_LEFT then moveLeft;
if KeyToAction(key) = GA_RIGHT then moveRight;
// Проверяем прошла ли 1 секунда
if ((GetRelativeTimeMs - lastSavedTime) > 1000)
or (GetRelativeTimeMs < lastSavedTime)
then
begin
lastSavedTime := GetRelativeTimeMs;
moveDown; // Двигаем блок вниз
end;
until gameOver;
... |
Совместимость MIDP1.0
Требуемый модуль
Не требуется
Смотри также
|