Программирование игр под J2ME: Управление слоями с помощью LayerManager

Июль 25th, 2010 от Abizan Оставить ответ »

Как Вы помните, классы Sprite и TiledLayer являются потомками класса Layer. Обычно игра состоит хотя бы из одного TiledLayer’а и нескольких Sprite’ов. Класс LayerManager делает работу со слоями гораздо проще. У него есть методы для добавления/удаления и вставки слоев, а также один метод отрисовки всех слоев сразу. Это означает, что Вам не нужно вызывать метод paint() у каждого графического объекта отдельно.

Экземпляр класса LayerManager создается с помощью конструктора без аргументов. Добавление, удаление и вставка слоя выполняется с помощью методов append(Layer layer), remove(Layer layer) и insert(Layer layer, int index) соответственно. Порядок, в котором добавляются слои очень важен, поскольку от этого зависит, в каком порядке они будут отрисованы. Слой с индексом 0 будет отрисован выше всех остальных, то есть будет ближе всех к пользователю.

В метод start() нашей игры, мы добавим следующий код:

1
2
3
4
5
6
7
// создать LayerManager
manager = new LayerManager();
// и добавить в него слои
manager.append(trollFaceSprite);
// создаем фон и добавляем его в менеджер
createBg();
manager.append(bg);

Как видите, спрайт троллфейса будет самым ближним к пользователю, а дальним – фон. Теперь в нашем методе updateGameScreen() нужно заменить строки отрисовки спрайта и фона на одну единственную:
manager.paint(g, 0, 0);
Первый параметр – объект Graphics, на котором надо рисовать слои, а второй и третий указывают, в каком месте их рисовать.

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

Реклама

2 комментариев

  1. Metalex:

    Здравствуйте, автор! Позвольте спросить, почему Вы прервали цикл Ваших статей. Мне как новичку очень интересны Ваши статьи (я пока что написал подобие Пакмана).
    Кстати, хотел бы заодно узнать лично Ваше мнение как эксперта по поводу будущего j2me.

  2. Saint_Byte:

    Да действительно что все так кончилось ??? Вернитесь мы хотим вас читать

Добавить комментарий

Копирование материалов сайта допускается только с разрешения администрации сайта.