Хонич А.
Как самому создать трехмерную игру
стр. 53

3.7.6. Инициализация таймера (StartupTimer)

Таймер нужен в любой игре в основном для синхронизации по скорости, т.е. чтобы скорость игры не зависела от быстродействия компьютера. Также таймер может выполнять и другие функции. Например, осуществлять выборку данных для синтезатора при проигрывании музыки и др. В DOOM’e прерывания таймера возникают с частотой 140 Гц. Функцию StartupTimer можно представить так, хотя в DOOM’e она несколько сложнее.

void StartupTimer (freq)

{

tmOldlnter = _dos_getvect (8); // запомнить старый адрес прерывания _dos^setvect(8, new_timer); // установить новый вектор SetTimer (1193180 / freq); // изменить частоту таймера TimerOk =1;

}

void Set I imer (short val)

{

outp (0x43,0x36); outp (0x40,val & 255); outp (0x40,(val > 8) & 255);

}

При работе нового обработчика таймерных прерываний необходимо позаботиться о том, чтобы системное время не прекращало свой ход. Для этого из нового обработчика прерывания надо вызывать функцию tmO!dInter(). Все бы ничего, но частота первого намного выше (стандартная частота таймера 18.2 Гц). Как это делается, показано ниже на простом примере:

Новости
Сценарист Uncharted рассказала о проблемах одиночных игр
Над игрой работала Эми Хенниг, сценарист серий Uncharted и Legacy of Kain.
Готовится выход дополнения «Апокалипсис» для Battlefield 1
Компания Electronic Arts, которая занимается изданием компьютерных игр, и студия-разработчик DICE готовят выход дополнения «Апокалипсис» для игрового проекта Battlefield 1. В дополненной версии появится пять новых карт.