begin process at 2008 07 21 01:13:43
1 213 544 membres
13 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : XNA créer, instancier plusieurs objets à l'aide d'une boucle for [ Multimédia / Autre ] (blackskiz)

XNA créer, instancier plusieurs objets à l'aide d'une boucle for le 21/04/2008 18:27:59

blackskiz
Bonjour,

Je souhaiterai instancier un nombre X d'objets de ma classe Car à l'aide d'une boucle for.
exemple :

            for (int i = 0; i < 3; i++)
            {
                carOne = new Car(game, graphics, 100, Background.BACKGROUND_HEIGHT - 100, true);
                game.Components.Add(carOne);
            }

Dans cette exemple je n aurais qu'un seul objet affiché car je ne peux réutiliser le même nom "carOne" pour d'autre objet.
Comment faire pour que dans cette boucle 3 carOne soit crées

Merci d'avance pour vos réponses

Re : XNA créer, instancier plusieurs objets à l'aide d'une boucle for le 21/04/2008 18:41:37

Mattx
Membre Club
Réponse acceptée !
Salut,

Tu peux utiliser une liste pour ça.

Exemple :

List<lalala> ListLalala = new List<lalala>();
lalala mon_objet = new Lalala();
ListLalala.Add(mon_objet);

Après tu récupere l'objet i :

ListLalala[i]

Voilà bonne continuation ;)

Re : XNA créer, instancier plusieurs objets à l'aide d'une boucle for le 21/04/2008 19:27:39

blackskiz
Merci de répondre aussi vite. Mais si j'utilise cette manière de faire dans ce cas il me faut connaitre à l'avance le nombre d'objets (ds mon exemple 3) afin que je les ajoute a la liste ListLalala à l'aide de la methode add(). Hors je peux avoir le besoin de créer 3, 10 ou n objets à instancier. Désolé de ne pas avoir été suffisamment clair et précis dans ma question initiale.

Re : XNA créer, instancier plusieurs objets à l'aide d'une boucle for le 22/04/2008 19:48:32

MasterShadows
Réponse acceptée !
Salut blackskiz, alors comme l'a dit Mattx tu peux aisément passé par la liste, car que tu instantie 3, 10, 100, x objets la méthode Add ajoutera ton objet à la fin de la liste. Par contre le coup de :

game.Components.Add(carOne);

c'est très mauvais tu va te taper x DrawableGameComponent d'un coup, les perfs vont baisser de manière significative. Le mieux que tu es à faire c'est de créer une class CarManager héritant de drawablegamecomponent, tu lui instantie une liste Car, avec une méthode Add tu ajoutes toutes tes voitures.

Ensuite dans la méthode Update tu parcours ta liste et tu mets à jour toutes les voitures. De même pour la méthode Draw.

Par contre si tu veux pouvoir accéder à une voiture par son nom écrit une fonction de ce style :

public Car GetCar(string Name)
{
   return m_listCar.Find(delegate(Car car) { return Car.Name == Name; });
}

Bonne continuation pour ton projet
}

Re : XNA créer, instancier plusieurs objets à l'aide d'une boucle for le 25/04/2008 16:17:42

blackskiz
Merci de ton aide


Classé sous : boucle, for, objets, instancier, carone

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS