blackskiz
Messages postés5Date d'inscriptionjeudi 21 décembre 2006StatutMembreDernière intervention30 mars 2010
-
21 avril 2008 à 18:27
blackskiz
Messages postés5Date d'inscriptionjeudi 21 décembre 2006StatutMembreDernière intervention30 mars 2010
-
25 avril 2008 à 16:17
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
MasterShadows
Messages postés268Date d'inscriptionlundi 1 mars 2004StatutMembreDernière intervention19 avril 201212 22 avril 2008 à 19:48
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; });
}
blackskiz
Messages postés5Date d'inscriptionjeudi 21 décembre 2006StatutMembreDernière intervention30 mars 2010 21 avril 2008 à 19:27
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.