私は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が起動しないように、ゲーム要素をどのように保存すればよいですか(できれば、私はできません)。
実行時にコレクションにも要素を追加しますが、それらも事前に割り当てる必要がありますか?