Название: Создание игр для мобильных телефонов
Автор: Майкл Моррисон
Жанр: Программирование
isbn: 5-9706-0007-5
isbn:
Важно отметить, что класс Layer – это абстрактный класс, поэтому напрямую создавать экземпляры этого класса нельзя. Но вы можете создавать экземпляры классов, производных от Layer, например, Sprite, или его производных. Производные классы от Layer должны реализовывать свой собственный метод, чтобы их можно было нарисовать.
Совет Разработчику
Начальное положение слоя – (0,0), оно задается в системе координат объекта Graphics, передаваемого в метод paint().
Ниже перечислены методы класса Layer, которые очень важны для работы со спрайтами и слоями:
► getX() – возвращает координату X верхнего левого угла слоя;
► getY() – возвращает координату Y верхнего левого угла слоя;
► getWidth() – возвращает ширину слоя;
► getHeight() – возвращает значение высоты слоя;
► setPosition() – устанавливает координаты XY левого верхнего угла слоя;
► move() – переместить слой на заданное расстояние в осях XY;
► isVisible() – проверяет, видим ли слой;
► setVisible() – устанавливает свойства видимости;
► paint() – переопределяется в классах-потомках.
Класс Sprite построен на классе Layer, он реализует методы, необходимые для создания двухмерных графических объектов. В класс Sprite добавлены следующие основные функции:
► спрайты основаны на изображениях, они могут состоять из нескольких фреймов;
► изображения спрайта можно преобразовывать (поворачивать, отображать и т. п.);
► для спрайтов, состоящих из нескольких фреймов, можно точно определить последовательность отображения фреймов;
► столкновения спрайтов можно определять, используя обычные или уменьшенные ограничивающие прямоугольники или данные изображений.
Вы видите, что класс Sprite предлагает массу возможностей для программирования графики в мобильных играх. В этой главе вы не затронете все указанные аспекты, но вскоре восполните этот пробел. Пока мы сосредоточимся на создании и основах работы со спрайтом. Чтобы создать спрайт из одного изображения, передайте созданный объект Image конструктору класса Sprite:
Sprite monsterSprite = new Sprite(Image createImage(«/monster.png»));
В этом примере изображение монстра используется как основа для создания спрайта. Проблема заключается в том, что если вы поместите этот код в мидлет, то получите сообщение компилятора об ошибке, поскольку исключение, вызываемое вводом-выводом, не обрабатывается. Это исключение может быть обработано с помощью метода createImage() в случае ошибки загрузки изображения. Ниже приведен код структуры try-catch, выполняющей это:
try {
monterSprite = new Sprite(image.createImage("/Monster.png");
monsterSprite.setPosition(0,0);
}
catch (IOException e) {
System.err.println("Failed loading image!");
}
Несмотря на то что класс Layer инициализирует СКАЧАТЬ