我正在开发一款安卓游戏,我有一个关于存储游戏元素而不会发射垃圾收集器的问题。
我的游戏需要一个集合,其中游戏元素根据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函数以接受另外一个参数 - 临时向量(预先分配),其中填充了元素然后返回。
谢谢,
关心J.
答案 0 :(得分:0)
答案 1 :(得分:0)
每隔几分钟可能不是一个值得担心的问题,当它触发时你会得到明显的帧速率下降吗?另一种选择是在方便的时候调用System.gc()。