Saya sedang mengembangkan game android dan saya punya pertanyaan tentang menyimpan elemen-elemen game tanpa menembakkan pengumpul sampah.
Gim saya membutuhkan koleksi tempat elemen gim disimpan menurut posisi x, y (semua elemen gim memiliki x, y, lebar dan tinggi). Koleksinya kemudian dipanggil setiap frame untuk mengambil elemen sesuai dengan cameraX, cameraY, lebar dan tinggi kamera (pengguna dapat menggulir di sekitar game).
Contoh:
function draw() {
tmp = collection.getElements(tmp,cameraX,cameraY,cameraWidth,cameraHeight);
for(int i = 0; i < tmp.size(); i++) {
tmp.get(i).draw();
}
}
Saat ini saya menggunakan kelas Vector untuk mewakili elemen koleksi, tetapi gc terus menyala setiap beberapa menit. Saya melakukan semua alokasi saya di muka. Saya juga memodifikasi fungsi getElements untuk menerima 1 parameter lagi - vektor temp (dialokasikan di muka) yang diisi dengan elemen dan kemudian dikembalikan.
Bagaimana saya harus menyimpan elemen-elemen game agar gc tidak bisa dinyalakan (saya lebih suka jika tidak mungkin)?
Saya juga menambahkan elemen ke koleksi selama runtime, apakah saya harus mengalokasikannya dimuka juga?