Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > Игры для телефонов: карты в стратегиях


Автор: Гость_Mihail 18.12.2005, 16:55
Скажите, люди добрые.
Есть игровая карта сколько-то на сколько-то ячеек. На карте есть
всякие объекты. Они могут быть не только размером 1x1 но и любого
другого. Есть массив из классов объекта карты(объект представляет
из себя на самом деле просто набор переменных).

Вот, например, класс объекта:
class класс_объекта {
int left, top, id;
}

а вот класс ячейки:
class класс_ячейки {
класс_объекта переменная_объекта;
int typeID;
}


Объект может занимать несколько ячеек, и каждая ячейка должна
указывать(и будет) на объект, который её занимает. А сами объекты,
храняться в массиве, чтобы с ними легче было работать.
В ячейках они за тем, чтобы легче было искать короткие пути
из точки "А" в точку "Б".

Телефон ведь не подохнет, если у него на каждой ячеке будет висеть
пустая переменная объекта. Количество ячеек может достигнуть, и
даже превысить, восемь тысяч штук.
А если на каждую ячейку ещё повесть какие-нибудь переменные(есть
ещё человечки, здания...).

Автор: redrick 22.12.2005, 16:50
опытным путем выяснено, что по крайней мере на эмуляторе инстанс Object занимает около 12 байт, т.е. в вашем случае получается 12*8000 = 96к, лимит оперативной (runtime) памяти около 100к и есть. Так что если это и возможно, то требует тщательного расчета и подгонки ИМХО.

Автор: Гость_Mihail 23.12.2005, 16:12
И всё же сделал так как задумал!
И проверил: создал 16 с лихом тысяч объектов-ячеек(карта размером 127 на 127), на каждую навесил 2 байта (переменные типа byte) и объект. Загрузил по три рисунка на игрока (2 игрока, примерно по 2.89 килобайт графики на каждого игрока, т.к. менять определённый цвет картинки на ходу не хватило производительности). Загрузил ещё рисунков на 15 килобайт и ещё чуть-чуть памяти ушло на содержание других одиночных переменных и объектов.

Телефон SonyErricsson k300i заработал без проблем.
При этом ещё и перерисовывая карту на весь экран с такой же скоростью, как и при карте размером всего 24 на 24 ячейки.

Во как всё круто!

Автор: redrick 23.12.2005, 17:03
а не пробовал посмотреть сколько реально памяти сжирается ?
или какие ограничения у данного девайса ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)