Вход/Регистрация
Создание игр для мобильных телефонов
вернуться

Моррисон Майкл

Шрифт:

Вы когда-нибудь играли в игру, в которой мир намного больше по сравнению с экраном? Когда виртуальный мир намного шире, чем мы можем отобразить на экране, необходимо использовать некоторые приемы, помогающие определять размеры мира и какую именно часть необходимо отображать. В современных 3D-играх такие приемы очень сложны, а в 2D-играх это сделать не так сложно. К счастью, в MIDP 2.0 API есть класс, который значительно упрощает работу с большими виртуальными мирами. Этот класс называется TiledLayer. Класс помогает создавать замощенные слои (tiled layers). Такие слои очень похожи на спрайты, но они состоят из множества изображений (ср. мозаика). В этой главе вы познакомитесь с замощенными слоями, вы узнаете, как они используются для создания виртуальных миров.

Прочитав эту главу, вы узнаете:

► почему замощенные слои столь важны для программирования игр;

► как использовать специальные программные средства создания карт, помогающие облегчить построение замощенных слоев;

► как с помощью слоев создавать карты, лабиринты и прочие интересные фоновые изображения;

► что разработка приключенческого симулятора – это не такая сложная задача.

Что такое замощенный слой?

Ранее вы узнали, что слой (layer) – это графический компонент игры, а спрайт – это особый вид слоя, который для визуального представления использует изображение или их последовательность. Замощенный слой очень похож на спрайт тем, что он используется как визуальный компонент игры, но, в отличие от спрайта, он состоит из нескольких изображений, размещенных друг относительно друга определенным способом. Когда вы создаете замощенный слой, то указываете несколько изображений или слоев, которые будут составлять слой. После этого вы указываете, как следует разместить эти изображения. На рис. 10.1 показано, как из нескольких изображений создается слой.

Рис. 10.1. Изображения как элементы головоломки, если их правильно сложить, то получится изображение

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

Если внимательно посмотреть на рис. 10.1, можно заметить, что изображения имеют уникальные числовые идентификаторы (от 0 и выше). Эти идентификаторы называются числовыми индексами, они используются при создании карт как ссылки на отдельные элементы слоя. Рисунок демонстрирует, как индексы используются в двухмерном массиве, определяя вид замощенного слоя. Возможно, самая полезная информация, которую дает приведенный рисунок, – это иллюстрация того, что замощенные слои очень легко создавать даже из небольшого набора изображений. Это очень важно для создания мобильных игр, особенно в связи с сильно ограниченными ресурсами памяти и связи.

При создании слоев важно учитывать единственное требование – все изображения замощенного слоя должны быть одинакового размера. Такое требование обоснованно, учитывая, что слои могут быть перемешаны и соединены друг с другом различными способами. Несмотря на то что слои должны быть одинакового размера, для размеров одного слоя ограничений нет. Например, если вы используете изображения размером 32х32 пикселя, то высота и ширина результирующего слоя должны быть кратны 32. Например, если вы хотите создать прямоугольный слой, состоящий из 24 элементов по ширине и 16 по высоте, то в результате вы получите слой размером 768х512 пикселей. Очевидно, что такой слой не поместится на экран, поэтому ваша игра должна быть создана так, чтобы в любой момент на экране отображался нужный фрагмент.

В следующей главе вы узнаете, как использовать средства MIDP 2.0 API для управления слоями и создания «окна просмотра» (viewing window), которое позволяет отображать отдельный фрагмент замощенного слоя. Пока вы можете достичь того же эффекта, используя метод draw фрагмента слоя. Такая методика подразумевает смещение слоя относительно экрана так, чтобы была видна только та его часть, которую необходимо отобразить. Рисунок 10.2 иллюстрирует, как можно нарисовать гоночную трассу, показанную на рис. 10.1, на экране телефона.

Рис. 10.2. Когда размер замощенного слоя больше размера экрана, то в любой момент времени отображается лишь определенная часть

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

Вы, вероятно, уже понимаете уникальные возможности, которые предоставляют для разработки замощенные слои. Карты миров, гоночные трассы, коварные лабиринты – это только малая часть того, что вы можете сделать, используя замощенные слои. Еще более интересно то, что класс Sprite поддерживает такие слои, и вы можете проверять столкновение объектов. Например, вы создаете лабиринт, в котором стены – это преграды для любого спрайта, находящегося в лабиринте. В последующих разделах вы познакомитесь с тем, как можно использовать слои, а пока я хочу рассказать вам, как создавать карты.

Создание карт для замощенных слоев

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

Один из интересных этапов при работе со слоями – это разработка карты, определение положений отдельных изображений. Даже при создании простейшей карты, требуется сначала проработать ее на листе бумаги, пронумеровать отдельные изображения, а затем приступать к программированию. Хочу отметить, что я потратил не один лист бумаги, чтобы создать карты для игр, с которыми вы будете работать в последующих главах книги. К сожалению, позже я нашел программное обеспечение, которое значительно упрощает разработку карт.

Я нашел два пакета для создания карт, каждый из них очень удобен и полезен:

► Mappy;

► Tile Studio.

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

...

В копилку Игрока

К сожалению, программы Mappy и Tile Studio работают только в среде Windows. Код Tile Studio доступен в сети, поэтому вы сможете найти версии, адаптированные для других платформ.

При выборе программного обеспечения руководствуйтесь исключительно собственным вкусом, хотя, на мой взгляд, работать с Mappy проще. С другой стороны, Tile Studio имеет больше инструментов. В следующих двух разделах речь пойдет о создании карт с использованием Mappy и Tile Studio.

Использование редактора карт Mappy

Редактор карт Mappy – это достаточно простое приложение, которое позволяет визуально создавать и редактировать замощенные слои. Научиться использовать Mappy очень просто, эта программа хороша тем, что вы можете вставлять сгенерированный код непосредственно в код Java. Вы поймете, о чем я говорю, дальше. А пока посмотрите на рис. 10.3, на котором показана карта, созданная в Mappy.

Рис. 10.3. Чтобы приступить к созданию карты в редакторе Mappy, определите размер карты и количество используемых цветов

...

В копилку Игрока

Вы можете бесплатно загрузить Mappy с web-сайта http://www.tilemap.co.uk/mappy.php.

Задав размер слоя в пикселях и размер карты (количеством слоев), вы можете приступить к импорту карты. После того как из меню File (Файл) выбран пункт Import (Импорт), в правой части экрана вы увидите набор слоев, а в левой части – пустую карту (рис. 10.4).

Рис. 10.4. Слои загружены и готовы к размещению на новой карте

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

На рис. 10.5 показан фрагмент достаточно большой карты, созданной с помощью Mappy.

Рис. 10.5. В Mappy отображается верхний левый угол созданной карты

  • Читать дальше
  • 1
  • ...
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: