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

private TiledLayer backgroundLayer; private Sprite personSprite;

Переменная backgroundLayer управляет замощенным слоем в мидлете, в то время как переменная personSprite отвечает за героя. Эти переменные инициализируются в методе start класса WCanvas, в котором создаются замощенный слой и спрайт. Вот код, создающий фоновый замощенный слой:

try {

backgroundLayer = new TiledLayer(16, 16,

Image.createImage("/Background.png"), 48, 48);

}

catch (IOException e) {

System.err.println("Failed loading images!");

}

Если вы вспомните, о чем шла речь в начале главы, конструктор TiledLayer требует задать число строк и столбцов в замощенном слое, а также изображение, содержащее отдельные элементы, и размеры одного элемента. Эта информация передается конструктору в приведенном выше коде. Замощенный слой состоит из 16 строк и столбцов, его элементы имеют размер 48х48 пикселей. Кроме того, эти изображения хранятся в файле Background.png (рис. 10.9). Наиболее важная часть создания замощенного слоя – это определение карты слоя. Для этого вы должны задать массив (или карту), состоящий из индексов, которые определяют вид замощенного слоя. Ранее вы увидели, как с этой задачей может помочь программное обеспечение для создания карт, оно даже создает необходимый код. Ниже приведен массив для инициализации замощенного слоя, вы уже видели его раньше:

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

};

Этот массив должен быть вам знаком: вы разрабатывали карту, которую он описывает, в предыдущих разделах. Очевидно, что объявления массива не достаточно для определения замощенного слоя. Чтобы задать слой, вы должны определить значение каждой ячейки, для чего необходимо использовать метод setCell класса TiledLayer. К счастью, это не так сложно сделать с помощью цикла for:

for (int i = 0; i < layerMap.length; i++) {

int column = i % 16; //Размер карты 16x16

int row = (i – column) / 16;

backgroundLayer.setCell(column, row, layerMap[i]);

}

Наиболее важный момент в этом цикле, на который следует обратить внимание, – это использование числа 16 во второй и третьей строках кода. Это число во второй строке означает количество столбцов, а в третьей – количество строк. Если вы измените размер карты, то вы должны изменить и эти числа в соответствии с изменениями. Самое приятное в этом коде – это то, что весь слой инициализируется всего пятью строками кода.

...

Совет Разработчику

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

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

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

С компьютером на ты. Самое необходимое
С компьютером на ты. Самое необходимое

Рассказывается о работе в операционной системе Windows (на примере версий XP и 7), текстовом редакторе Word 2010 и других приложениях, необходимых каждому пользователю: архиваторах, антивирусах и программах для просмотра видео и прослушивания музыки (Winamp, QuickTime Pro). Большое внимание уделяется работе в Интернете. Рассказывается о программах для просмотра Web-страниц, об электронной почте, а также о различных полезных приложениях для работы в сети — менеджерах закачек файлов, ICQ, Windows Live Messenger, MSN и многих других. Во втором издании рассмотрена новая ОС — Windows 7, а также последние версии приложений для пользователей.Для начинающих пользователей ПК.

Андрей Александрович Егоров , Андрей Егоров

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
От «кирпича» до смартфона
От «кирпича» до смартфона

Перед вами уникальное исследование мира мобильной индустрии, превращенное его автором Эльдаром Муртазиным, ведущим аналитиком Mobile Research Group и главным российским специалистом по мобильным телефонам, в захватывающий бизнес-триллер. Гигантские компании — Nokia, Motorola, Samsung бросают на мобильный фронт колоссальные силы, создают альянсы, охотятся за лучшими специалистами, шпионят друг за другом. Разработки ведутся в обстановке строжайшей секретности. Цель — выпустить на рынок новую, уникальную модель раньше конкурентов или даже полностью изменить наше представление о мобильном телефоне, как это недавно удалось Apple со своим iPhone.Эта книга предназначена для тех, кто видит в мобильном телефоне не просто средство связи, а чудо инженерной мысли, смелое воплощение дизайнерских фантазий, символ нашей эпохи.

Эльдар Викторович Муртазин , Эльдар Муртазин

Справочная литература / Прочая компьютерная литература / Прочая справочная литература / Книги по IT / Словари и Энциклопедии