我正在为Android制作应用程序,在某些时候我需要添加很多级别。为了提高效率,在玩家离开关卡后,我会将其删除并添加新关卡,具体取决于某些因素。问题是,当我进入关卡时,游戏会遇到很多延迟。我用设备监视器查看内存,我看到使用的内存不断上升,即使我使用.clear删除以前的级别。我会把代码放进去,我只用播放器测试它,没有任何其他实体:
void manageLevels(){
while(inc < sf && inc < minLevel){
blocks.get(0).clear();
inc++;
}
while(sf < numberLevels && sf < maxLevel + 2){
blocks.add(new ArrayList<blockClass>());
sf++;
nrLv[sf] = blocks.size() - 1;
float BlockX = -1500 * scaleX, BlockY = 250 * scaleY - (sf - 1) * levelSize;
platforms[sf] = BlockY + 100 * scaleY;
setTexture();
for(int i = 0 ; i < numberOfBlocks ; i++){
blocks.get(nrLv[sf]).add(new blockClass(BlockX, BlockY, typeT, scaleX, scaleY));
BlockX += 100 * scaleX;
}
}
}