Программирование игр для Windows. Советы профессионала


Игровой цикл - часть 2


Помните что не существует единственно правильного способа сделать игровую программу. Если, в конце концов, программа будет работать так, как надо — неважно, как именно она реализована. Однако следует иметь в виду, что некоторые способы построения подобных программ лучше других и это «лучше» определяется следующими факторами:

§          Время, затраченное на реализацию игры;

§          Скорость выполнения программы;

§          Простота модификации;

§          Легкость отладки.

Этот список можно продолжить, однако это, пожалуй» наиболее важные факторы.

В четырнадцатой главе, «Связь», мы займемся игрой, которую я назвал Net-Tank. Это работающий через последовательный порт симулятор танкового боя, со звуковыми эффектами, потрясающей графикой, различным оружием и полностью интерактивным режимом игры. Цикл этой игры приведен на рисунке 12.4.

Как вы можете видеть, цикл игры включает в себя все обсуждавшиеся ранее компоненты:

§          Инициализацию объектов игры;

§          Удаление объектов;

§          Ввод данных локальным игроком;

§          Ввод данных удаленным игроком;

§          Выполнение преобразований;

§          Расчет столкновений;

§          Вызов подпрограммы, перемещающей снаряды;

§          Воспроизведение графического изображения в автономном буфере экрана. В нужный момент это изображение мгновенно возникнет на экране.

Это хороший пример цикла игры. Он включает в себя все компоненты, присущие более сложным играм.Однако сама игра проста в исполнении и я вполне мог бы обойтись без использования прерываний и синхронизации. (Хотя на самом деле это не так - передачу данных через последовательный порт в любом случае пришлось бы осуществлять при помощи обработчика прерывания, но об этом вы узнаете в четырнадцатой главе). Как бы то ни было, у меня не происходило никаких асинхронных событий, я не создавал сложную систему . воспроизведения звука и был избавлен от необходимости выполнять критичную по времени обработку данных, которая наверняка потребовала бы строгого слежения за временем исполнения посредством использования прерываний.

Теперь давайте поговорим о методах создания программного обеспечения, помогающих избежать некоторых характерных для компьютерных игр проблем. Конечно, можно обойтись и без этих хитростей и уловок, но с ними будет проще быстро написать хорошую игру.




Начало  Назад  Вперед



Книжный магазин