3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
Если вы сравните эти индексы с элементами карт, представленными на рисунках, вы увидите, как карта соответствует этим числам. В следующих главах на основе этих данных мы восстановим карту, когда будем создавать мидлет Wanderer.
Использование редактора карт Tile Studio
Приложение Tile Studio очень похоже на Mappy, но обладает большими возможностями. Однако расширение возможностей приводит и к повышению сложности. Не поймите меня неправильно, Tile Studio – очень полезная программа, и вам, вероятно, она может показаться более универсальной, чем Mappy. Но чтобы начать работу над картами для мобильных игр, лучше применять Mappy, поскольку она проще в использовании. Поэтому я не буду тратить время на объяснение основ работы в Tile Studio. Вместо этого посмотрите на рис. 10.8, на нем показана карта, которую я создал с помощью Tile Studio.
Рис. 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, с объектами этого класса можно работать так же, как со спрайтами. Иначе говоря, вы можете изменять положение замощенного слоя, запрашивать его размер и текущее положение, выводить на экран и управлять видимостью. Для этого требуется лишь несколько вызовов методов.
Читать дальше
Конец ознакомительного отрывка
Купить книгу