Прежде чем перейти к созданию трехмерной игры, нам стоит уделить внимание оптимизации ранее изученного механизма смены игровых состояний в приложении. Как вы помните, для смены игровых состояний в двухмерной игре мы использовали конструкцию управляющих операторов if/else. Теперь пришло время создать более действенный и профессиональный подход смены игровых состояний, основанный на использовании структур и структурных переменных.
Понятия свет и освещенность в компьютерных играх идентичны понятиям окружающего нас с вами мира. В компьютерной графике применяются три типа освещения. Первый – это параллельный, или направленный, источник света. Этот тип освещения не имеет определенного источника света и светит отовсюду, но в определенном направлении.
В отличие от двухмерного программирования графики, работать с 3D-графикой несколько сложнее. Для создания даже простых трехмерных программ вам понадобится значительно больше математических познаний, чем для работы со спрайтовой графикой. В связи с этим в этой главе я предлагаю рассмотреть основы программирования 3D-графики, без знания которых у вас не получится создать ни одной дельной программы.
Играя в любую игру, пользователь всегда надеется на длительное продолжение игрового процесса. Поэтому большинство игр имеют определенный набор уровней. По прохождении одного из уровней игроку предлагается пройти следующий уровень и т. д.
До недавнего времени работа со звуком в играх не отличалась особой легкостью.
В том же DirectX SDK на организацию звукового движка уходило очень много времени, а с появлением Xbox 360 программирование звука в играх на базе DirectX SDK стало и вовсе невозможным. В связи с этим для платформы XNA был создан новый компонент под названием Microsoft Cross-Platform Audio Creation Tool, или просто XACT. Это кросс-платформенный механизм, позволяющий создавать отдельные звуковые проекты, которые впоследствии вы можете встроить в свою игру как для ПК, так и для Xbox 360, затратив при этом минимум усилий и времени. Все проекты с использованием XACT создаются по одному принципу. Вам необходимо произвести стандартный набор операций – и у вас на руках будет готовый звуковой проект...
Все хорошо сделанные игры не обходятся без меню, и это не просто стартовая страница всего приложения, это хорошо отлаженный механизм, позволяющий пользователю управлять работой программы. В связи с этим необходимо очень тщательно продумывать и планировать работу меню. Старайтесь избегать множественных вложений, непонятных команд и лишних неоправданных диалоговых окон плана...
В этой главе мы добавим в игру несколько дополнительных игровых элементов, которые позволят улучшить качество игрового процесса, да и сама игра приобретет некоторую цель....
В играх объекты могут пересекаться друг с другом, или сталкиваться между собой. Такой вид пересечения объектов называется игровым столкновением. Для определения столкновения объектов в игре программисты пишут исходный код, который создает своего рода детектор столкновений...
Ни одно устройство не может сравниться с джойстиком и ему подобными устройствами по степени комфортности и удобства управления игрой. К исключениям можно отнести только руль, но это узконаправленное устройство, предназначенное для управления гоночными играми и различными леталками (рулем удобнее управлять самолетом или космическим кораблем)...
Изображения в играх могут быть как анимированными, так и неанимированными. Неанимированное изображение – это некий рисунок заданного размера, состоящий из одного кадра, или фрейма...
В этой главе мы начнем работать с двухмерными изображениями и создадим два проекта. В первом проекте мы загрузим в игру и выведем на экран простое двухмерное изображение, или, как принято говорить, спрайт.
С этой главы мы начинаем работать с исходным кодом игры, применяя инструментальные средства, рассмотренные в третьей и четвертой главах. Текущий проект для этой главы создается на базе шаблона Xbox 360 Game...