Partage
  • Partager sur Facebook
  • Partager sur Twitter

Besoin d'aide sur une partie de code incertaine

passage de tableau de pointeur d'objet à une fonction

Sujet résolu
    20 août 2007 à 8:38:02

    Bonjour,

    j'aimerais savoir si j'ai commis une erreur dans cette partie de code. Ennemi est un objet.

    Voici la partie du code dans le main :

    1. Ennemi* listeEnnemi[100] = {NULL};
    2. int nombreEnnemi = 0;
    3. chargerEnnemi (numeroPieceActuelle, &nombreEnnemi , listeEnnemi[0]);


    et voici la fonction chargerEnnemi :

    1. void chargerEnnemi (int numeroPieceActuelle, int *nombreEnnemi, Ennemi *listeEnnemi)
    2. {
    3.     {
    4.         ostringstream NumeroPiece;
    5.         NumeroPiece << numeroPieceActuelle;
    6.         ifstream fichierInfos("pieces\\infos.txt");
    7.         for(int i=1 ; i<numeroPieceActuelle ; i++ )
    8.         {
    9.             char caractere=0;
    10.             while(caractere!='\n')
    11.             {
    12.                 fichierInfos.get(caractere);
    13.             }
    14.         }
    15.         fichierInfos >> *nombreEnnemi;
    16.         for (int i=0 ; i< *nombreEnnemi ; i++)
    17.         {
    18.             int posX, posY;
    19.             fichierInfos >> posX;
    20.             fichierInfos >> posY;
    21.             listeEnnemi[i] = *new Ennemi(posX, posY); // C'est surtout sur cette ligne que je doute
    22.         }
    23.     }
    24.     return;
    25. }


    le fichier infos.txt ressemble à ceci :

    Citation : infos.txt

    3 325 450 325 475 300 425
    0



    Chaque ligne de ce fichier correspond aux ennemis d'une "pièce" d'un des niveaux du jeux. Le premier nombre de chaque ligne indique le nombre d'ennemis de la pièce, et ensuite apparaît leurs coordonées.

    Merci d'avance pour votre aide et vos conseils...
    • Partager sur Facebook
    • Partager sur Twitter
      20 août 2007 à 9:05:26

      oui tu en as commis une: tu passe listeEnnemi[0]); en paramètre ce qui est mauvais: tu passe juste un pointeur sur un ennmi donc tu ne peux pas modifier la liste, il faut passer listeEnnemi en paramètre, les modifications donne:
      1. chargerEnnemi (numeroPieceActuelle, &nombreEnnemi , listeEnnemi);

      1. void chargerEnnemi (int numeroPieceActuelle, int *nombreEnnemi, Ennemi **listeEnnemi)

      1. listeEnnemi[i] = new Ennemi(posX, posY);

      Et normalement çà doit marcher
      • Partager sur Facebook
      • Partager sur Twitter
        20 août 2007 à 9:09:01

        Excellent! Merci sa fonctionne maintenant.
        • Partager sur Facebook
        • Partager sur Twitter

        Besoin d'aide sur une partie de code incertaine

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown