PDA

View Full Version : [c#] Modificare una lista, durante lo scorrimento


stdecden
05-07-2008, 14:21
Salve a tutti,

sto tentando di programmare un videogioco e mi sono imbattuto in questo articolo: Object-Oriented Game Design(A modular and logical method of designing games) (http://www.devmaster.net/articles/oo-game-design/)
qui si afferma che un oggetto puó contenere una lista di azioni, e che queste azioni possono aggiungere o rimuovere altre azioni dalla lista. E finora tutto bene. Il problema sorge quando io voglio eseguire tutte le azioni ad ogni frame, perché cosí le azioni modificano la mia lista durante lo scorrimento(il foreach, per intenderci), generando un' eccezzione.

qualche idea

Leo_SR
05-07-2008, 18:25
Ma le azioni in quella lista non dovrebbero modificare la lista delle azioni appartenenti al frame successivo?

stdecden
05-07-2008, 18:49
Ma le azioni in quella lista non dovrebbero modificare la lista delle azioni appartenenti al frame successivo?

Cioé mi consigli di mettere le modifiche in qualche lista temporanea e poi fare tutte le modifiche appena il frame dopo, qualcosa del tipo:

oggetto.azioni.aggiungi(new Azione.Corri()); // Ancora non viene aggiunta, viene solo messa in qualche contenitore temporanea
...
oggetto.azioni.applicaCambiamenti(); // Ora la lista delle azioni é aggiornata

Leo_SR
06-07-2008, 10:57
Cioé mi consigli di mettere le modifiche in qualche lista temporanea e poi fare tutte le modifiche appena il frame dopo, qualcosa del tipo:


Esatto. Poi i modi per implementare questa cosa sono diversi, ma il tuo è già un'idea