我正在使用具有多个级别的AndEngine构建坦克游戏,但我没有使用多个场景,我坚持1个主要游戏场景,当用户击败关卡时应该重置和修改自己。
我能够成功修改场景,但我遇到了移除敌人的问题。用户必须杀死敌人精灵的多个实例,但是当用户成功完成提升等级的要求(杀死x个敌人)时,敌人不会被重置;尚未从屏幕上删除上一级别的实例。
因此,当用户处于2级时,可能仍有3或4个敌人从1级漫游,用户无需杀死。
我尝试使用detachChild从屏幕移除敌人并将attachChild立即添加回来,但是当下一级别开始时,敌人不会产生。
如何在不影响产卵的情况下删除屏幕上当前所有敌方精灵的所有实例?
答案 0 :(得分:1)
当你开始游戏时,你必须创建不同的图层(实体),如gameLayer, 背景图层,HUD图层...。因此您可以根据情况更新项目。 此过程使您可以在完成级别后平稳地卸载资源。
根据您的要求...在创建时将每个精灵实例添加到数组列表中。 删除所有这些如下
public static void removeSprites(List<Sprite> spriteList, IEntity scene){
for(int i = spriteList.size() - 1; i >= 0; i--) {
final Sprite sprite = spriteList.get(i);
scene.detachChild(sprite);
spriteList.remove(i);
}
spriteList = null;
System.gc();
}
你还必须在游戏中卸载纹理地图集
答案 1 :(得分:-1)
好吧,尝试使用此方法:sprite.detachchildren()