Bonjour, j'ai un petit problème, j'essaie de faire un tetris sur le principe suivant :
J'ai une classe Tetris qui contient un sprite "courant", celui qui est actuellement en mouvement ; et une liste de sprites, ceux qui sont empilés.
Voici mon problème : Quand le sprite courant atteint le sol, je l'ajoute à la liste des sprites empilés et je le remplace par un autre à partir d'une liste de sprites possibles (de façon aléatoire); seulement au lieu de faire une copie de sprite à partir de celui de la liste, le sprite renvoyé EST celui de la liste.
Voici l'implémentation :
La liste dans le constructeur, que je remplis de sprites dans une méthode Initialize() :
List<Sprite> possiblesSprites;
possiblesSprites = new List<Sprite>();
Et la fonction qui donne un sprite :
public Sprite GenerateSprite()
{
Random random = new Random(DateTime.Now.Millisecond);
int choice = random.Next(0, possiblesSprites.Count);
Sprite sprite = possiblesSprites[choice]; /* C'est là le problème,
au lieu d'un nouveau sprite j'ai celui de la liste */
return sprite;
}
Comment fait-on pour faire une copie de l'objet en C# ? Parce que pour l'instant c'est celui de la liste qui se déplace, donc le jeu ne dure pas très longtemps
Merci d'avance pour votre aide
Pop70