如何重置列表XNA和C#

时间:2014-06-03 14:29:54

标签: c# xna xna-4.0 2d-games

我需要做一次"重试"玩家完成游戏时的选项。为此,我想重置怪物和其他物品的清单,这些物品在第一次游戏时被移动或被杀死了#34;例如我有一个类似的列表:

   //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;
        }
    }
   }

}

他们应该再次被吸引但是如果我将它们移除它们就不再被吸引了。如果我不能移除它们,相反,敌人会在不同的地方(因为他们跟着我)。 有关恢复或重新初始化列表的任何建议吗?

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解你的问题,但...... 重新启动游戏时,您可以清空列表

enem1.Clear();

然后像第一次游戏开始那样重新填充:

enem1.Add(new enemy1(....));