Partage
  • Partager sur Facebook
  • Partager sur Twitter

récupérer les coordonnées de mon perso

depuis un fichier

Sujet résolu
    15 août 2007 à 19:25:50

    Bonjour,
    j'ai rencontré un problème par rapport à ma fonction pour récupérer les coordonnées de mon personnage depuis un fichier nommé posheros.lvl
    composé de 2 lignes , la 1ère qui définit posheros.x et la 2ème posheros.y
    voilà ma fonction:

    1. int chargerPosHeros(SDL_Rect posheros)
    2. {
    3.     int i,j;
    4.     fstream fichier;
    5.     fichier.open("posheros.lvl");
    6.     int tmp;
    7.     if(fichier)
    8.     {
    9.                    fichier >> tmp;
    10.                    posheros.x = tmp;
    11.                    fichier >> tmp;
    12.                    posheros.y = tmp;
    13.     }
    14.     fichier.close();
    15. }


    voilà
    c'est le code que j'avais mis, sûr à 100%, que j'ai remplacé par posheros.x = 0; posheros.y = 0;
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      15 août 2007 à 19:47:05

      et le problème est??

      ça ne te sauve pas les nouvelle coordonnée?
      revois le cours sur le C (niveau pointeur) ou C++ avec les références.

      Hiura
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        15 août 2007 à 20:06:57

        Salut,

        i et j servent à quoi ?

        Dans ta fonction, il n'y a pas de problème. Et comme l'a dit hiura, il faut que tu nous disent le problème qu'il pourrait y avoir !

        Xav57
        • Partager sur Facebook
        • Partager sur Twitter
          15 août 2007 à 22:07:35

          - ta fonction ne retourne rien
          - remplace fstream par ifstream
          - tu peux faire directement fichier >> posheros.x sans passer par tmp (meme chose pour y)
          - ta structure posheros ne changeras jamais, passe par un pointeur
          • Partager sur Facebook
          • Partager sur Twitter
            16 août 2007 à 9:31:27

            ça marche!!
            merci!!
            En plus maintenant j'ai compris pourquoi et comment utiliser les pointeurs. merci.
            Je vous passe les bouts de code concernés:
            1. int chargerPosHeros(Sint16 *pointeur1, Sint16 *pointeur2);
            2. // plus loin à la ligne 85
            3. SDL_Rect posheros;
            4. Sint16 *pointeur1 = &posheros.x;
            5. Sint16 *pointeur2 = &posheros.y;
            6. chargerPosHeros(pointeur1, pointeur2);
            7. *pointeur1 >> posheros.x ;
            8. *pointeur2 >> posheros.y ;
            9. // la fonction charger posheros
            10. int chargerPosHeros(Sint16 *pointeur1, Sint16 *pointeur2)
            11. {
            12. ifstream fichier; // mettre fstream ne change rien au résultat
            13. fichier.open("posheros.lvl");
            14. if(fichier)
            15. {
            16. fichier >> *pointeur1;
            17. fichier >> *pointeur2;
            18. }
            19. fichier.close();
            20. }

            Merci beaucoup!!
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              16 août 2007 à 10:46:44

              1. SDL_Rect posheros;
              2. Sint16 *pointeur1 = &posheros.x;
              3. Sint16 *pointeur2 = &posheros.y;
              4. chargerPosHeros(pointeur1, pointeur2);


              Tu sais que tu peux te passer de tes deux Sint16?

              1. chargerPosHeros(&posheros.x, &posheros.y);

              C'est plus simple, non?

              (Si tu crées un double d'une variable à chaque fois que tu dois en passer à une fonction, tu va faire sauter la mémoire!)
              • Partager sur Facebook
              • Partager sur Twitter
                16 août 2007 à 10:50:01

                c pas grave, j'ai quand même réussi. merci
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  16 août 2007 à 10:58:44

                  Citation : gogohan

                  c pas grave, j'ai quand même réussi. merci

                  Image utilisateur (je m'en excuse).

                  Il faut prendre de bonne habitude dès le début; sinon comment tu ferras quand tu devra créer un très gros programme? Tu ne vas pas quand même demander à l'utilisateur d'acheter un nouveau PC 4 x plus puissant?? o_O

                  Enfin moi je te donne des conseils, à toi de choisir de les prendre ou pas ;) .

                  Hiura
                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 août 2007 à 12:50:01

                    1. ifstream fichier; // mettre fstream ne change rien au résultat


                    utilise toujours ifstream pour lire dans un fichier
                    • Partager sur Facebook
                    • Partager sur Twitter

                    récupérer les coordonnées de mon perso

                    × 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