Я занимаюсь разработкой игры для Android, и у меня есть вопрос о хранении игровых элементов без запуска сборщика мусора.
Моей игре нужна коллекция, в которой игровые элементы хранятся в соответствии с позициями x, y (все игровые элементы имеют x, y, ширину и высоту).Затем коллекция вызывается в каждом кадре для извлечения элементов в соответствии с cameraX, cameraY, шириной и высотой камеры (пользователь может прокручивать игру).
Пример:
function draw() {
tmp = collection.getElements(tmp,cameraX,cameraY,cameraWidth,cameraHeight);
for(int i = 0; i < tmp.size(); i++) {
tmp.get(i).draw();
}
}
В настоящее время я использую класс Vector для представления элементов коллекции, но gc продолжает срабатывать каждые несколько минут.Я делаю все свои ассигнования заранее.Я также изменил функцию getElements, чтобы принять еще 1 параметр - временный вектор (выделенный заранее), который заполняется элементами, а затем возвращается.
- С каким классом хранить игровые элементы, чтобы gc не стрелял (я предпочитаю никогда, если это возможно)?
- я также добавляю элементы в коллекцию во время выполнения, я должен также выделять их заранее?
Спасибо,
С уважением J.