Показать сообщение отдельно
Старый 22.02.2011, 18:42   #474
YellowAfterlife
ПроЭктировщик
 
Аватар для YellowAfterlife
 
Регистрация: 19.02.2011
Сообщений: 134
Написано 81 полезных сообщений
(для 219 пользователей)
Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.

Было бы очень мило чтобы кто-то написал библиотеку, отражающую функциональность javax.microedition.lcdui.game.TiledLayer.
Документация по ней: http://java.sun.com/javame/reference...iledLayer.html
Всего в ней должно быть 14 функций (12 + конструктор + деструктор).
Все эти функции доступны TiledLayer'у.
TilesCreate(columns, rows, image, tileWidth, tileHeight) - конструктор
TilesFree - деструктор (освобождение памяти).
TilesSetCell(col, row, index) - смена тайла в одной ячейке
TilesFill(col, row, cols, rows, index) - заполнение прямоугольника
TilesGetCell(col, row) : integer - получение индекса тайла с ячейки
TilesCellWidth : integer - получение ширины ячейки
TilesCellHeight : integer - получение высоты ячейки
TilesColumns : integer - получения количества столбцов
TilesRows : integer - получение количества строк
TilesSetTileset(image, tileWidth, tileHeight) - смена статичного набора тайлов
TilesCreateAnimated(staticIndex) : integer - создание нового анимированого тайла
TilesGetAnimated(animIndex) : integer - получение привязанного к анимированому тайлу индекса
TilesSetAnimated(animIndex, staticIndex) - установка привязанного к анимированому тайлу индекса
TilesPaint - прорисовка на текущем смещении.*
Унаследованные функции из javax.microedition.lcdui.game.Layer:
TilesWidth : integer - ширина всего "слоя"
TilesHeight : integer - высота всего "слоя"
TilesX : integer - X-координата
TilesY : integer - Y-координата
TilesPosition(x, y) - установка X\Y

* Я не знаю наверняка о принципе прорисовки, если оная выполняется автоматически (а не через Paint), то стоит добавить (Tiles)SetVisible \ (Tiles)IsVisible, которые наследуются от Layer.


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

К сожалению, на данный момент для MidletPascal нет полноценной библиотеки этого рода. Ближайшая к этому Lib_game-Lib_tile не имеет части функциональности (всех унаследованных от Layer функций, и, как ни странно, getCell, что безусловно усложняет вычисление столкновений между тайлами и обьектами). К тому же, Lib_tile по какой-то причине ссылается на Lib_game, которая не отличается особой стабильностью.

Если такая библиотека появится, обязуюсь написать пример(ы) ее использования.

Отредактировано: хотя... постойте. Возможно я и сам смогу это написать и скомпилировать.

Последний раз редактировалось YellowAfterlife, 22.02.2011 в 19:37. Причина: Прозрение
(Offline)
 
Ответить с цитированием