如何重置列表XNA和c#
本文关键字:XNA 列表 何重置 | 更新日期: 2023-09-27 18:06:20
我需要在玩家完成游戏时添加"重试"选项。为了做到这一点,我想重新设置怪物和其他物体的列表,这些物体在第一次游戏时移动或被"杀死"。例如,我有一个这样的列表:
//the enemy1 class is already done
// in Game1 I declare it
List<enemy1> enem1 = new List<enemy1>();
//Initialize method
List<enemy1> enem1 = new List<enemy1>();
//LoadContent
foreach (enemy1 enemy in enem1)
{
enemy.Load(Content);
}
enem1.Add(new enemy1(Content.Load<Texture2D>("enemy"), new Vector2(5900, 12600)));
//Update
foreach (enemy1 enemy in enem1)
{
enemy.Update(gameTime);
}
//after being shooted the enemies disappear and i remove them
//if the monsters are shooted the bool "visible" goes from false to true
for (int i = enem1.Count - 1; i >= 0; --i)
{
if (enem1[i].visible == true)
enem1.RemoveAt(i);
}
//Draw
foreach (enemy1 enemy in enem1)
{
if(enemy.visble==false)
{
enemy.Draw(spriteBatch, gameTime);
}
}
//So my problem is to restart the game.
if(lost==true)
{
//here I have to put the code that restore the list
//I tried:
foreach (enemy1 enemy in enem1)
{
enemy.visible=false;
}
}
}
}
应该再次绘制,但如果我删除它们,它们将不再绘制。如果我不移除它们,敌人就会在不同的地方(因为他们跟着我)。有什么恢复或重新初始化列表的建议吗??
我不确定我是否理解了你的问题,但是…当重新开始游戏时,你可以清空列表
enem1.Clear();
,然后像游戏开始时那样重新填充:
enem1.Add(new enemy1(....));