Come ripristinare una lista xna e c #
Domanda
Ho bisogno di fare un'opzione "riprova" quando il giocatore finisce il gioco. Per fare ciò ho pensato di resettare gli elenchi di mostri e altri oggetti che si sono spostati al primo gioco o che sono stati "uccisi".Avere una lista del genere:
//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;
}
}
}
}
.
Dovrebbero essere disegnati di nuovo ma se li rimossi non saranno più disegnati. Se non li rimuoverò, invece, i nemici sono in posti diversi (perché mi seguono). Eventuali suggerimenti per ripristinare o reinizializzare la lista ??
Soluzione
Non sono sicuro se ho capito la tua domanda, ma ... Quando si riavvia il gioco potresti semplicemente svuotare la lista
enem1.Clear();
.
e quindi riempire come te al primo inizio del gioco:
enem1.Add(new enemy1(....));
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow