Хонич А.
Как самому создать трехмерную игру
стр. 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 Гц). Как это делается, показано ниже на простом примере:

Новости
В PlayStation Store стартовала программа скидок «Хиты Японии»
Акция проводится в рамках программы «Хиты Японии». На определенное время эти игровые проекты подешевеют на 60 %.
Как бесплатно поиграть в For Honor
Компания Ubisoft сообщает, что с 3 по 6 мая в For Honor можно будет сыграть бесплатно на консолях текущего поколения и РС.