Je suis en train de développer un jeu Android et j'ai une question sur le stockage des éléments du jeu sans déclencher le ramasse-miettes.
Mon jeu a besoin d'une collection où les éléments du jeu sont stockés selon les positions x, y (tous les éléments du jeu ont x, y, largeur et hauteur). La collection est ensuite appelée chaque image pour récupérer les éléments selon cameraX, cameraY, largeur et hauteur de la caméra (l'utilisateur peut faire défiler le jeu).
Exemple:
function draw() {
tmp = collection.getElements(tmp,cameraX,cameraY,cameraWidth,cameraHeight);
for(int i = 0; i < tmp.size(); i++) {
tmp.get(i).draw();
}
}
J'utilise actuellement la classe Vector pour représenter les éléments de la collection, mais le gc continue de se déclencher toutes les deux minutes. Je fais toutes mes allocations à l'avance. J'ai également modifié la fonction getElements pour accepter 1 paramètre supplémentaire - un vecteur temporaire (alloué à l'avance) qui est rempli d'éléments puis renvoyé.
Comment dois-je stocker les éléments du jeu pour que le gc ne tire pas (je préfère jamais si possible)?
J'ajoute également des éléments à la collection pendant l'exécution, dois-je également les allouer dès le départ?