Предыдущая Следующая
Суть работы 2-буфера заключается в том, чтобы правильно представить объемную модель на двухмерной плоскости экрана телевизора. Задний буфер расставляет вершины объекта в пространстве как в реальном мире, удаляя от нас более дальние части модели и приближая ближние, создавая тем самым объемность мира. После этого все данные поступают в так называемый фрейм-буфер, или просто кадр.
Вот такая модель работы используется графическим конвейером для представления графики на экране телевизора. На этом знакомство с основами программирования ЗЭ-графики подошло к завершению, и мы переходим к работе над новым проектом трехмерной игры. Это не значит, что вы изучили всю концепцию программирования ЗЭ-графики, но полученных знаний вам вполне хватит для дальнейшей работы с книгой.
Глава 16
Смена игровых состояний
Прежде чем перейти к созданию трехмерной игры, нам стоит уделить внимание оптимизации ранее изученного механизма смены игровых состояний в приложении. Как вы помните, для смены игровых состояний в двухмерной игре мы использовали конструкцию управляющих операторов if/else. Теперь пришло время создать более действенный и профессиональный подход смены игровых состояний, основанный на использовании структур и структурных переменных.
16.1. Улучшаем смену игровых состояний
В чем смысл методики смены игровых состояний, основанных на структурных данных? Необходимо сформировать структуру данных, содержащую определенный набор переменных. Как вы знаете, структура - это совокупность переменных, предназначенных для хранения различной информации. Объявление структуры приводит к созданию набора данных, которые впоследствии может использовать любой объект структуры или структурная переменная.
Создать структуру в нашем контексте можно следующим образом:
private enum CurentGameState
{
SplashScreen,
MenuScreen,
HelpScreen,
AboutScreen,
GameScreen,
GameOverScreen,
VictoryScreen
}
Как видите, названия переменных соответствуют определенным фазам игровых состояний. У нас эти переменные будут означать следующее:
□ SplashScreen - первая игровая заставка, появляющаяся при старте игры;
□ MenuScreen - меню игры;
□ Help - экран, объясняющий правила игры;
□ AboutScreen - экран с информацией об игре;
□ GameScreen - игровой процесс;
□ GameOverScreen - экран проигрыша игры;
□ VictoryScreen - экран выигрыша игры.
280 Смена игровых состояний
Дополнительно можно ввести любое количество переменных для любого количества фаз игровых состояний. Далее при старте игры создается структурная переменная и инициализируется одним из значений структуры, например: Предыдущая Следующая
|