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

Замощенные слои открывают новые возможности для мобильных игр. Как только вы начали использовать замощенные слои и спрайты, которые тоже являются слоями, управлять ими стало намного сложнее. Сложно контролировать то, какой слой должен быть нарисован поверх остальных, и каков порядок их отображения. К счастью, в MIDP API предусмотрен специальный класс, разработанный для работы со слоями в мобильной игре. Я говорю о классе LayerManager, который полезно использовать для автоматизации некоторых задач при работе с несколькими слоями. В этой главе вы не только изучите работу с классом LayerManager, но и доработаете игру Wanderer, сделаете ее намного интереснее.

В этой главе вы узнаете:

► о трудностях, связанных с управлением несколькими игровыми слоями;

► как стандартный класс LayerManager может упростить работу со слоями;

► как можно использовать два замощенных слоя для создания интересных эффектов;

► как из мидлета Wanderer сделать интересный лабиринт.

Работа с несколькими слоями

Вероятно, к настоящему моменту у вас сложилось представление, что любая игра, создаваемая с помощью MIDP API, построена из слоев. Если вы вспомните, о чем шла речь в предыдущих главах, класс Layer служит базовым классом для Sprite и TiledLayer в MIDP API. В примерах, рассмотренных к настоящему моменту, слои использовались для представления различных визуальных компонентов, но они были всегда независимы друг от друга. Каждый слой необходимо было рисовать вызовом метода paint(). Аналогично, при выводе слоев на экран, вам приходилось четко контролировать очередность рисования.

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

Вы, вероятно, поняли, что я к чему-то веду, критикуя ранее написанный код. Я критикую предыдущую программу потому, что в сложных играх задача управления становится более трудной. К счастью, в MIDP API предусмотрено решение этой проблемы – класс LayerManager. Этот класс реализует простые, но эффективные средства рисования, создания и управления слоями.

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

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

Рис. 11.1. Окно вида менеджера слоев можно сделать меньше игрового экрана, оставив место для другой информации

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

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

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

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

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

Финансы / Программирование, программы, базы данных
Язык программирования C++. Пятое издание
Язык программирования C++. Пятое издание

Лучшее руководство по программированию и справочник по языку, полностью пересмотренное и обновленное под стандарт С++11!Р'С‹ держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под стандарт С++11. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. Р' соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка. Большинство примеров из книги было пересмотрено так, чтобы использовать новые средства языка и продемонстрировать РёС… наилучшие СЃРїРѕСЃРѕР±С‹ применения. Эта книга — не только проверенное руководство для новичков в С++, она содержит также авторитетное обсуждение базовых концепций и методик языка С++ и является ценным ресурсом для опытных программистов, особенно желающих побыстрей узнать об усовершенствованиях С++11.Стенли Р'. Липпман работал старшим консультантом в Jet Propulsion Laboratory, архитектором РіСЂСѓРїРїС‹ Visual С++ корпорации Microsoft, техническим сотрудником Bell Laboratories и главным инженером- программистом по анимации в кинокомпаниях Disney, DreamWorks, Pixar и PDI.Р–РѕР·и Лажойе, работающий ныне в кинокомпании Pixar, был членом канадской РіСЂСѓРїРїС‹ разработчиков компилятора C/C++ корпорации IBM, а также возглавлял рабочую группу базового языка С++ в составе международной организации по стандартизации ANSI/ISO.Барбара Э. Му имеет почти тридцатилетний опыт программирования. На протяжении пятнадцати лет она работала в компании AT&T, сотрудничая с Бьярне Страуструпом, автором языка С++, и несколько лет руководила РіСЂСѓРїРїРѕР№ разработчиков С++.• Узнайте, как использовать новые средства языка С++11 и стандартной библиотеки для быстрого создания надежных программ, а также ознакомьтесь с высокоуровневым программированием• Учитесь на примерах, в которых показаны передовые стили программирования и методики проектирования• Р

Барбара Э. Му , Жози Лажойе , Стенли Б. Липпман

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