Майкл Моррисон - Создание игр для мобильных телефонов
- Название:Создание игр для мобильных телефонов
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Майкл Моррисон - Создание игр для мобильных телефонов краткое содержание
Книга «Создание игр для мобильных телефонов» – это практическое руководство, которое поможет разработать и реализовать игру для мобильного телефона.
Книга написана простым языком, не содержит сложной и скучной теории программирования и шаг за шагом знакомит с методикой создания технологии «plug-and-play» применительно к созданию огромного количества игр.
В издание включены подробные описания и примеры кодов для четырех игр, а также информация, необходимая для реализации вашей собственной задумки.
Если вы любите играть в игры и занимаетесь программированием, то эта книга – для вас!
Перевод: К. Михалкин
Создание игр для мобильных телефонов - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Рис. 10.8. Интерфейс Tile Studio аналогичен интерфейсу Mappy
В копилку Игрока
Вы можете загрузить Tile Studio с этой страницы в Internet: http://tilestudio.sourceforge.net/.
Как видно из приведенного рисунка (рис. 10.8), в Tile Studio в нижней части экрана вы можете выбрать нужный фрагмент и разместить его на карте. В Studio есть ряд специальных возможностей, которые вы не найдете в Mappy, но, может быть, вам они не понадобятся для работы. Я советую вам поработать с каждым из упомянутых приложений и решить, какое из них вам подходит более. Я могу с уверенностью сказать, что подобное программное обеспечение ускоряет и облегчает процесс разработки мобильных карт.
Форматирование информации о картах для игр
Раньше шла речь о Mappy, программе для создания карт, и я показал вам код, созданный таким приложением. Я не уточняю, что этот код означает, но вы можете догадаться, что цифры, разделенные запятыми, – это индексы слоев. Существует несколько способов запрограммировать карту. Самый простой способ сделать это – использовать массив целых чисел для хранения индексов. Несмотря на то что массив – это ряд чисел, в коде вы можете разделить строки и столбцы.
Карта, созданная Mappy, уже разделена на строки, а вот со столбцами сложнее, поскольку числа не выровнены. Если вы выровняете числа и заключите их в массив, то получится следующий Java-код:
int[] layerMap = {
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 21, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 22, 3,
3, 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20, 3,
3, 18, 2, 2, 2, 5, 15, 15, 15, 15, 15, 15, 6, 2, 20, 3,
3, 18, 2, 2, 2, 7, 10, 1, 1, 1, 1, 1, 16, 2, 20, 3,
3, 18, 2, 2, 2, 2, 14, 1, 1, 1, 1, 1, 16, 2, 20, 3,
3, 18, 2, 2, 2, 2, 7, 10, 1, 1, 1, 1, 16, 2, 20, 3,
3, 18, 2, 2, 2, 2, 2, 14, 1, 1, 1, 1, 16, 2, 20, 3,
3, 18, 2, 2, 2, 2, 2, 14, 1, 9, 10, 1, 16, 2, 20, 3,
3, 18, 2, 5, 15, 6, 2, 14, 1, 11, 12, 1, 16, 2, 20, 3,
3, 18, 2, 14, 1, 16, 2, 7, 13, 13, 13, 13, 8, 2, 20, 3,
3, 18, 2, 7, 13, 8, 2, 2, 2, 2, 2, 2, 2, 2, 20, 3,
3, 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20, 3,
3, 23, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 24, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3.
};Теперь в вашем распоряжении есть массив индексов, который можно использовать для создания карты в мобильной игре. Вне зависимости от того, создаете ли вы карту, рисуя ее карандашом на листе бумаги, или применяя Mappy, Tile Studio или другое программное обеспечение, в результате вы должны получить массив целых чисел, который представляет собой таблицу индексов. Если вы до сих пор испытываете трудности с пониманием назначения массива, посмотрите на рис. 10.9.
Рис. 10.9. Индексы слоев на картинке проставляются автоматически слева направо и сверху вниз, начиная с 1Вне зависимости от того, сколько элементов хранится в изображении для замощенного слоя, они индексируются так, что верхний левый элемент имеет номер 1, затем нумерация продолжается вправо и вниз. Теперь, если вы сравните индексы элементов на рис. 10.9 с форматированным кодом, который видели ранее, то поймете, как была сформирована карта, показанная на рис. 10.10.
Рис. 10.10. Карту можно восстановить, если каждому элементу кода поставить в соответствие нужный фрагмент картыЭтот рисунок должен раскрыть тайну индексов и то, как они используются в целочисленном массиве для построения замощенного слоя карты. Вы вернетесь к этой карте чуть позже, когда будете работать над мидлетом Wanderer. Теперь, когда вы представляете, как создавать карты, можно перейти к знакомству с классом TiledLayer и его применением для создания замощенных слоев.
Работа с классом TiledLayer
Замощенные слои поддерживаются MIDP 2.0 API, для этого используется класс TiledLayer. Он облегчает создание и применение таких слоев. Каждый замощенный слой – это объект, с которым ассоциировано изображение, определяющее набор элементов, которые используются для создания замощенного слоя карты. Каждый замощенный слой имеет карту, содержащую индексы, которые означают определенный фрагмент изображения. Поскольку родительским классом для TiledLayer является класс Layer, с объектами этого класса можно работать так же, как со спрайтами. Иначе говоря, вы можете изменять положение замощенного слоя, запрашивать его размер и текущее положение, выводить на экран и управлять видимостью. Для этого требуется лишь несколько вызовов методов.
Создание замощенного слоя
При создании замощенного слоя вы задаете ширину и высоту в количестве элементов, определяете изображение, содержащее необходимые элементы, а также указываете высоту и ширину фрагментов. Эта информация передается в конструктор TiledLayer(). Ниже приведен код, создающий замощенный слой, представляющий собой трассу (рис. 10.2):
Рис. 10.2. Когда размер замощенного слоя больше размера экрана, то в любой момент времени отображается лишь определенная частьTiledLayer backgroundLayer;
try {
backgroundLayer = new TiledLayer(5, 4, Image.createImage("/RaceTrack.png"),
100, 100);
}
catch (IOEXception ioe) {
System.err.printIn("Failed loading images!");
}Первые два параметра в вызове TiledLayer() определяют число строк и столбцов в замощенном слое соответственно, в данном случае – это 5 и 4. Третий параметр – это объект Image, который представляет собой гипотетический перечень элементов слоя, показанных на рис. 10.1. Оставшиеся два параметра – это ширина и высота одного фрагмента, в нашем случае элементы – это квадраты со стороной 100 пикселей. После того как создан объект TiledLayer, устанавливается его карта, для чего ячейки заполняются нужными индексами. Если вы посмотрите на рис. 10.1, то заметите, что каждому фрагменту присвоен уникальный номер. Эти номера – индексы в перечне элементов изображения. Индексы всегда начинаются с 1 и увеличиваются. Индекс 0 – это специальный индекс, который определяет отсутствие фрагмента. Иначе говоря, когда вы задаете элемент с индексом 0, то он будет прозрачным.
В копилку Игрока
Перед тем как карта слоя задана, все ячейки содержат индекс 0, что означает, в начале замощенный слой прозрачен.
Используя разметку трассы, представленную на рис. 10.1, карту слоя можно задать в виде целочисленного массива так:
int[] layerMap = {
1, 3, 3, 3, 2,
6, 7, 7, 7, 6,
6, 7, 1, 3, 5,
4, 3, 5, 7, 7
};Все, что необходимо сделать, чтобы представить карту, – это взглянуть на индексы элементов в массиве. Чтобы облегчить задачу, просто нарисуйте карту на листе бумаги или в программе, например, Mappy или Tile Studio, речь о которых шла выше. Массив в предыдущем элементе кода – это одномерный массив, но он отформатирован так, что вы можете представить отдельные ячейки. К сожалению, конструктору TiledLayer нельзя передать массив. Вы должны установить в каждой ячейке замощенного слоя массив, для чего вызвать несколько раз метод setCell(). Ниже приведен цикл, выполняющий это:
for (int i = 0; i < layerMap.length; i++) {
int column = i % 5; //Число 5 означает количество столбцов, а 4 – количество строк.
int row = (i – column) / 4;
backgroundLayer.setCell(column, row, layerMap(i));
Читать дальшеИнтервал:
Закладка: