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

правый нижний угол, предварительно запомнив под ним информацию Перед выходом из функции rcadlump осуществляется вызов функции ClearDisk. которая после вышеупомянутой проверки переменной VgaSet производит восстановление информации, на которую накладывался диск. Тут следует отметить, что все операции по выводу данного значка должны быть очень быстрыми, чтобы не тормозить обмен с винчестером, по возможности без циклов и без использования стандартных универсальных функций вывода графики. Вместо изображения диска можно использовать все, что угодно, например, песочные часы. И необязательно в углу экрана; можно и в середине. В данном случае все зависит только от вашего воображения.

А теперь несколько слов посвятим работе с многостраничным режимом VGA. Зачем нужен многостраничный режим? Почему не пользоваться одной страницей? Ведь это намного проще. А все дело в том, что запись в видеопамять осуществляется в десятки раз медленнее, чем в обычную память. В результате при выводе картинки на экран видна прорисовка. Особенно это заметно, когда предыдущая картинка сильно отличается от теку щей, выводимой. При этом наблюдается эффект как бы расслоения экрана. Все сказанное характерно прежде всего для медленных видеоадаптеров (Тrident, Realtek и др.), но бывает и на быстрых акселераторах. И в данном случае это никак от программиста не зависит, не зависит от того, насколько оптимальный алгоритм вывода он использу ет (чаще всего используется команда: rep movsd). Это все аппаратные издержки. Чтобы такого не произошло, используется многостраничный режим, который в двух словах можно охарактеризовать так: изображение сначала выводится в невидимую часть экрана, а после того, как формирование изображения закончено, производится переключение страницы, и невидимое становится видимым. Затем цикл повторяется сначала, т.е. изображение готовится в противоположной странице и затем сиова - переключение страницы. Переключение страницы происходит настолько быстро (ведь это обычная запись в порт), что глаз ие в состоянии это заметить, и вы никогда не увидите перерисовки на экране, каким бы медленным ни был ваш компьютер. Функция FlipPage, осуществляющая переключение активной страницы, выглядит так:

Переменная AdVga (если вы помните, мы ее установили в функции InitGraph) всегда указывает на адрес следующей невидимой страницы. Мы сказали: следу ющей, т.к. всего этих страниц - 3, и необходимо три раза пройти



Новости
3-й эпизод Hitman завтра станет бесплатным
Tomorrow the HITMAN: Summer Pack arrives. Giving you access to download Episode 3: Marrakesh.
Разработчики шутера GTFO показали новых врагов-теней в действии
Разработчики продемонстрировали в действии новых врагов-теней.