Главная » Программирование игр под Android » СОЗДАНИЕ РЕСУРСОВ DROID INVADERS

0

 

Как и в предыдущих играх, у нас есть два типа графических активов: элементы пользовательского интерфейса (например, логотипы или кнопки) и модели различных объектов нашей игры.

Активы пользовательского интерфейса

Мы снова будем создавать активы пользовательского интерфейса относительно целевого разрешения экрана. Наша игра будет работать в пейзажном режиме, поэтому мы просто выберем целевое разрешение равным 480 х 320 пикселов. Экраны на рис. 12.4 уже содержат все элементы, которые присутствуют в нашем пользовательском интерфейсе: логотип, различные пункты меню, несколько кнопок и пара строк текста. Для текста мы повторно используем шрифт, который уже применяли для игры Большой прыгун. Мы уже собирали воедино все эти элементы в предыдущих играх, и вы уже знаете, что помещение их в атлас текстур положительно скажется на производительности. Поэтому рассмотрим атлас текстур, который будем использовать для игры Droid Invaders, содержащий все элементы пользовательского интерфейса, а также шрифт, который будет применяться на всех экранах игры. Атлас текстур показан на рис. 12.6.

Такую же концепцию мы использовали в игре Большой прыгун. У нас также есть фоновое изображение, которое будет отрисовываться на всех экранах. Оно показано на рис. 12.7.

Рис. 12.6. Атлас, содержащий элементы пользовательского интерфейса, такие как кнопки, логотип и шрифт. Он хранится в файле items.png размером 512 х 512 пикселов

Рис. 12.7. Фоновое изображение, хранящееся в файле background.jpg размером 512×512 пикселов

Как вы можете увидеть на рис. 12.4, мы используем лишь верхний левый регион этого изображения для отрисовки полной картинки (480 х 320 пикселов).

Это все элементы пользовательского интерфейса, которые нам понадобятся. Рассмотрим 3D -модели и их текстуры.

Игровые ресурсы

Как я говорил в главе 11, в этой е не будут рассматриваться способы создания 3D -моделей с помощью программ вроде Wings3D. Если вы хотите создать собственные модели, вам следует выбрать приложение, решающее подобные задачи, и пройти курс обучения работы с ним, который часто оказывается бесплатным и свободно доступным в Сети. Для создания моделей игры Droid Invaders я использовал программу Wings3D и просто экспортировал их в формате OBJ, который мы можем загрузить с помощью нашего фреймворка. Все модели состоят из треугольников и имеют координаты текстур и нормали. Для некоторых из них координаты текстуры не являются обязательным параметром, но им не повредит их иметь. Модель корабля и его текстура показаны на рис. 12.8.

Рис. 12.8. Модель корабля, созданная в программе Wings3D (ship.obj), и ее текстура (ship.png, 256 х 256 пикселов)

Важным моментом является то, что корабль, изображенный на рис. 12.8, имеет лишь приблизительный радиус, обозначенный нами в предыдущем разделе. Нам не нужно ничего масштабировать или преобразовывать размеры и позиции из одной системы координат в другую. Модель корабля определяется в тех же единицах измерения, что и его ограничивающая сфера.

На рис. 12.9 показана модель захватчика и его текстура.

Модель захватчика следует тем же принципам, что и модель корабля. У нас есть один OBJ-файл, хранящий позиции вершин, координаты текстуры, нормали и изображение текстуры.

Блоки щитов и выстрелы моделируются как кубы и хранятся в файлах shield, obj и shot. obj. Хотя к ним прикреплены координаты текстуры, мы на самом деле не накладываем текстуры при их отрисовке. Мы просто рисуем их как (полупрозрачные) объекты определенного цвета (синий в случае блоков, желтый в случае выстрелов).

Рис. 12.9. Модель захватчика (invader.obj) и его текстура (invader.png, 256 х 256 пикселов)

Наконец, рассмотрим взрывы. Как нам их смоделировать? Нам это не нужно. Мы сделаем то же самое, что делали в 2D, и просто нарисуем прямоугольник с подходящей позицией по оси z в нашем ЗО-мире, наложив на него текстуру одного кадра из текстурного изображения, содержащего анимацию взрыва. Этот же принцип использовался для создания анимированных объектов в игре Большой прыгун. Единственное различие заключается в том, что мы будем рисовать прямоугольник в позиции по оси z, меньшей 0 (где находится взрывающийся объект). Мы даже можем заставить делать это класс Spri teBatcher. Ура OpenGL ES. На рис. 12.10 показана текстура.

Рис. 12.10.Текстура, содержащая анимацию взрыва (explode.png, 256 х 256 пикселов)

Каждый кадр анимации имеет размер 64 х 64 пиксела. Все, что нам нужно, – сгенерировать текстурные регионы для каждого кадра и поместить их в экземпляр класса Animation, который мы можем использовать для получения корректного кадра для заданного времени анимации, точно так же, как мы делали это для игры Большой прыгун.

Звук и музыка

Для создания звуковых эффектов я снова использовал программу sfxr. Звуковой эффект взрыва я нашел в Интернете. Это общедоступный звуковой эффект, поэтому мы можем использовать его в игре Droid Invaders. Музыку для игры я написал сам. С помощью настоящих инструментов. Да, я настолько старомоден. Вот список всех аудиофайлов игры Droid Invaders:

·        click.ogg – звук щелчка, необходимый для пунктов меню и кнопок; -

·        shot.ogg – звук выстрела;

·        expl osi on. ogg – взрыв;

·        musi с. mp3 – композиция в стиле рок/металл, которую я написал для игры Droid Invaders.

Источник: Mario Zechner / Марио Цехнер, «Программирование игр под Android», пер. Егор Сидорович, Евгений Зазноба, Издательство «Питер»

По теме:

  • Комментарии