► boolean collidesWith(TiledLayer t, boolean pixelLevel) – проверяет наличие конфликта между спрайтом и вложенным слоем (второй параметр указывает, должен ли этот конфликт быть пиксельным или основанным на конфликте прямоугольника);
► void defineCollisionRectangle(int x, int y, int width, int height) – создает прямоугольник границы для спрайта. Данный прямоугольник предназначен для распознавания конфликтов прямоугольника (часто он меньше, чем сам спрайт; это позволяет учесть спрайты, не имеющие прямоугольной формы);
► void defineReferencePixel(int x, int y) – создает для спрайта пиксель ссылки, который используется для перемещения и трансформации спрайта вместо его левого верхнего угла;
► int getRefPixelX() – считывает положение пикселя ссылки спрайта по оси X относительно системы координат (canvas или layer manager);
► int getRefPixelY() – считывает положение пикселя ссылки спрайта по оси Y относительно системы координат (canvas или layer manager);
► void setRefPixelPosition(int x, int y) – задает положение пикселя ссылки слоя по осям X и Y относительно системы координат объекта (canvas или layer manager);
► void setTransform(int transform) – настраивает трансформацию спрайта (для указания типа трансформации используются константы трансформации);
► void paint(Graphics g) – рисует спрайт, если он видимый.
Данные методы поддерживают большое количество функций спрайта, например, создание анимационной последовательности, распознавание конфликтов, работу с пикселем ссылки и добавление трансформаций.
Класс TiledLayer
Класс TiledLayer представляет собой слой, состоящий из нескольких слоев, которые выглядят, как единый графический объект. Вы можете воспринимать такой слой как головоломку, содержащую прямоугольные элементы одинакового размера. Вложенные слои очень удобны для создания фона и карты игры, особенно если такие карты больше, чем экран телефона. Класс TiledLayer позволяет более эффективно управлять изображениями, потому что вы можете использовать слои повторно, а также изменять последовательность слоев для формирования фона.
Аналогично анимационным кадрам, которые хранятся в одном анимированном изображении спрайта, слои хранятся в одном изображении. Класс TiledLayer даже поддерживает анимацию, однако она функционирует не совсем так, как анимация кадров в классе Sprite.
Конструктор
Класс TiledLayer имеет только один конструктор, который принимает различные параметры, определяющие размер карты и слоев:
TiledLayer(int columns, int rows, Image image, int tileWidth, int tileHeight)
Первые два параметра данного конструктора указывают размеры слоя. Третий параметр – это изображение, содержащее слои, а два последних параметра определяют ширину и высоту отдельных слоев.
Методы
В классе TiledLayer поддерживаются следующие методы:
► void fillCells(int col, int row, int numCols, int numRows, int tileIndex) – заполняет группу ячеек прямоугольной формы выбранным индексом слоя;
► int createAnimatedTile(int staticTileIndex) – создает новый анимированный слой, который изначально настроен на определенный индекс слоя (данный индекс является возвратным, отрицательным значением);
► int getCell(int col, int row) – считывает индекс слоя в указанной ячейке;
► int getCellWidth() – считывает ширину ячейки (в пикселях);
► int getCellHeight() – считывает высоту ячейки (в пикселях);
► void setCell(int col, int row, int tileIndex) – задает индекс слоя для указанной ячейки;
► int getColumns() – считывает количество столбцов в карте слоя;
► int getRows() – считывает количество строк в карте слоя;
► void setStaticTileSet(Image image, int tileWidth, int tileHeight) – задает изображение для слоя, содержащего статичные вложенные слои;
► int getAnimatedTile(int animatedTileIndex) – считывает статичный слой, связанный с анимированным индексом слоя;
► void setAnimatedTile(int animatedTileIndex, int staticTileIndex) – задает индекс слоя в текущем слое, который соответствует указанному индексу анимированного слоя;
► void paint(Graphics g) – рисует вложенный слой.
Эти методы предлагают широкий набор функций для создания и управления вложенными слоями. Вы сможете не только составить карту вложенного слоя, но и создать анимированные слои, сформировать отдельные ячейки в карте слоя, а также изменить изображение слоя.
Класс LayerManager
Класс LayerManager играет роль определенного хранилища слоев и содержит функции, предназначенные для организации и управления спрайтами и вложенными слоями. Класс LayerManager не только помогает вам в управлении порядком в слое, но и позволяет нарисовать группу слоев с одной ячейкой; для этого применяется метод paint(). Самая важная функция класса LayerManager, – это поддержка окна View (Вид), которое позволяет вам просмотреть группу слоев. Данное окно дает пользователю возможность увидеть мир мобильной игры.
Читать дальше
Конец ознакомительного отрывка
Купить книгу