Initialisation d'objets c#

Résolu/Fermé
Utilisateur anonyme - 11 sept. 2016 à 12:08
 Utilisateur anonyme - 11 sept. 2016 à 12:58
Bonjour,
J'aimerais coder un jeu en c# pour approfondir mes connaissances, mais j'ai un problème vis-à-vis des objets. Je sais les créer, à l'aide classes, mais j'ai toujours besoin de leur donner un nom. Comment faire si par exemple mon objet est un "méchant" et que je veux qu'il apparaisse automatiquement et qu'il puisse y en avoir un nombre théoriquement infini, sans les nommer dans le code?
merci de votre réponse

3 réponses

Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 928
11 sept. 2016 à 12:16
Bonjour

il y a deux types de classes:
  • celles qui font des objets, chacun ayant sa vie propre (ça me parait adapté à un jeu), et qui on nécessairement besoin d'être initialiser. Rien ne t'empêche d'en initialiser un nombre important (pas infini, la limite sera ta config PC) dans une liste sans avoir à nommer une variable
    List<Mechant> mesMechants = new List<Mechant>();
    mesMechants.Add(new Mechant());
  • celles qui ne font pas d'objet (la classe static), ça sert pour un calcul répétitif ou une variable globale (même si c'est déconseillé en C#), la classe Math en est un bon exemple (
    double puissance - Math.Pow(4,2);


1
Skymer Messages postés 477 Date d'inscription vendredi 6 décembre 2013 Statut Membre Dernière intervention 1 novembre 2018 75
Modifié par Skymer le 11/09/2016 à 12:23
Pas bête :)
Moi on ne pourra pas effectuer de modification aux objets alors que toi oui +1
0
Utilisateur anonyme
11 sept. 2016 à 12:23
Merci de ta réponse! Comment je fais si je veux supprimer un mechant? Et si je veux que mon personnage tape un mechant, ou est-ce que je met ca? dans la classe mechant ou personnage?
0
Skymer Messages postés 477 Date d'inscription vendredi 6 décembre 2013 Statut Membre Dernière intervention 1 novembre 2018 75 > Utilisateur anonyme
11 sept. 2016 à 12:35
.remove ? Un truc dans le genre
0
Skymer Messages postés 477 Date d'inscription vendredi 6 décembre 2013 Statut Membre Dernière intervention 1 novembre 2018 75
11 sept. 2016 à 12:13
Bonjour, tu veux dire les initialiser.. Mais sans les instanciez ...
Perso je programme en java (je pense que les deux langages se ressemble... Puis je pense que tu vas comprendre)
Monster mTemp;
for (int i =0; i != 10; i++) {
mTemp = new Monster(xPos, yPos);
mTemp.parametres(x,y,z);
mTemp.setblablabla(blabla, 45454);
//Si tu dois ajouter ton code à quelque choses, cela se passe ici
//panel.add(mTemp);
}

Je sais c'est un peu con de faire comme ça en java mais bon :) Au moins tu as une réponse rapidement ...
0
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 928
11 sept. 2016 à 12:47
Quand tu tapes il doit y avoir une interaction entre les deux classes.
C'est cette interaction qui supprimera l'instance.
Il me semble plus logique que ce soit la la classe Mechant, ça décompte les points de vie et quand ils passent sous 0 tu génères un événement avec la référence de l'instance en paramètre.
Ton programme principal s'abonne à cette événement et supprime l'instance de la liste avec sa référence par la méthode Remove comme Skymer l'a supposé.
0
Utilisateur anonyme
11 sept. 2016 à 12:58
merci de votre réponse, je vais essayer!
0