我不知道我在C#中尝试做什么是可能的,我无法在线找到答案。我有4个敌人物体。其中一人死亡。我希望从阵列中移除敌人。如果敌人位于阵列的中间,我希望下一个敌人占据其位置,以便阵列中间没有空位。这是代码(我在那里写了#34; //在这里删除"是我希望删除对象的地方):
public static int numberOfEnemies = random.Next(1, 4);
// create 1-4 enemies
public static Enemy[] enemyNumber = new Enemy[numberOfEnemies];
// initialize enemies
int h = 0;
do
{
enemyNumber[h] = new Enemy(playerLevel);
h++;
System.Threading.Thread.Sleep(25);
} while (h != numberOfEnemies);
// code where the fight happens i did not include
// enemy dies
if (enemyNumber[0].Ehealth <= 0){
{
Console.WriteLine("Enemy {0} is dead!", eName);
// remove here
}
}
答案 0 :(得分:0)
如果有人提到,您最好使用列表。这将允许你删除对象而不用担心空的空间(它将由下一个对象填充)如果没有,每次从数组中删除某些东西时你都需要这样的东西(假设Enemy
不是结构)
enemyNumber = enemyNumber.Where(enem => enem != null).ToArray();
同时重命名enemyNumber
因为它是一系列敌人,而不是一个数字:)