Estoy desarrollando un juego para Android y tengo una pregunta sobre cómo almacenar los elementos del juego sin disparar el recolector de basura.
Mi juego necesita una colección donde los elementos del juego se almacenan de acuerdo con las posiciones x, y (todos los elementos del juego tienen x, y, ancho y alto). La colección se llama cada cuadro para recuperar los elementos según cameraX, cameraY, ancho y alto de la cámara (el usuario puede desplazarse por el juego).
Ejemplo:
function draw() {
tmp = collection.getElements(tmp,cameraX,cameraY,cameraWidth,cameraHeight);
for(int i = 0; i < tmp.size(); i++) {
tmp.get(i).draw();
}
}
Actualmente estoy usando la clase Vector para representar los elementos de la colección, pero el gc sigue disparando cada dos minutos. Hago todas mis asignaciones por adelantado. También he modificado la función getElements para aceptar 1 parámetro más: un vector temporal (asignado por adelantado) que se llena con elementos y luego se devuelve.
¿Cómo debo almacenar los elementos del juego para que el gc no se dispare (prefiero nunca si es posible)?
También agrego elementos a la colección durante el tiempo de ejecución, ¿tengo que asignarlos también por adelantado?