Читаем Создание игр для мобильных телефонов полностью

Все, что необходимо сделать, чтобы представить карту, – это взглянуть на индексы элементов в массиве. Чтобы облегчить задачу, просто нарисуйте карту на листе бумаги или в программе, например, 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));

};

Этот код проходит по всем ячейкам замощенного слоя и присваивает нужный индекс. Этот код можно с легкостью приспособить для замощенного слоя любого размера, для чего необходимо изменить число столбцов (5) и строк (4) во второй и третьей строках кода соответственно.

Перемещение и отображение замощенного слоя

Теперь вы знаете, что создать замощенный слой с помощью класса TiledLayer очень просто, особенно если вы знаете, как создать карту, состоящую из индексов. Указать положение слоя также не представляет сложности:

backgroundImage.setPosition(0, 0);

Этот код просто устанавливает замощенный слой в начало координат игрового экрана: верхний левый угол слоя расположен в верхнем левом углу экрана телефона. Предположив, что размер слоя больше размера экрана, нижний правый угол замощенного слоя невидим на дисплее. Если, обратившись к документации MIDP API, вы будете искать метод setPosition(), вы увидите, что он не указан среди методов класса TiledLayer. Это потому, что данный класс – производный от класса Layer. Другой метод, наследованный от класса Layer, paint(), отвечает за вывод замощенного слоя. Ниже приведен код, рисующий замощенный слой:

backgroundLayer.paint(g);

Из приведенного кода видно, как мало усилий необходимо затратить, чтобы вывести замощенный слой после того, как он был создан.

Создание программы Wanderer

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

Неудивительно, что карта в Wanderer создана, как замощенный слой. В этом мидлете используются два различных объекта слоя: фоновый замощенный слой и спрайт героя. Пожалуйста, посмотрите на рис. 10.9 и 10.10, а также на код карты, чтобы представить карту, используемую в Wanderer. На ней островок земли окружен водой. В мидлете Wanderer следует проверять, что спрайт героя перемещается только по земле, потому что перемещения по воде и скалам запрещены.

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

Написание программного кода

Код программы Wanderer начинается с объявления переменных класса, необходимых для реализации замощенного слоя и его перемещения. Эти переменные – объекты классов TiledLayer и Sprite, последний необходим для имитации героя. Ниже приведен код, объявляющий эти переменные:

Перейти на страницу:

Похожие книги

1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных
iOS. Приемы программирования
iOS. Приемы программирования

Книга, которую вы держите в руках, представляет собой новый, полностью переписанный сборник приемов программирования по работе с iOS. Он поможет вам справиться с наболевшими проблемами, с которыми приходится сталкиваться при разработке приложений для iPhone, iPad и iPod Touch. Вы быстро освоите всю информацию, необходимую для начала работы с iOS 7 SDK, в частности познакомитесь с решениями для добавления в ваши приложения реалистичной физики или движений — в этом вам помогут API UIKit Dynamics.Вы изучите новые многочисленные способы хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и каталогами, а также рассмотрите многие другие темы. При описании каждого приема программирования приводятся образцы кода, которые вы можете смело использовать.

Вандад Нахавандипур

Программирование, программы, базы данных / Программирование / Книги по IT