Bonjour à tous,
Je suis en-train de coder un mini-jeu rpg en C++ qui est affiché en 2D grâce à la SDL.
Il y a donc des cartes (des maps) dont le contenu est stocké dans un fichier. Je m'explique :
La carte est assimilable à un tableau à deux dimensions dont la valeur d'une case est l'identifiant du morceau de carte à afficher.
Dans un fichier, il est donc stocké pour chaque endroit de la carte une ligne, une colonne et un identifiant.
L'identifiant est une chaine de type string.
Ensuite, grâce à la SDL, je veux l'afficher grâce à ce code :
picture=IMG_Load(identifiant.c_str());
SDL_SetColorKey(picture, SDL_SRCCOLORKEY, SDL_MapRGB(picture->format, 84, 138, 150));
SDL_BlitSurface(picture, NULL, screen, &position);
Le problème vient du fait que la compilation se passe correctement, mais lors de l'exécution, la fenêtre se ferme aussitôt.
En fait, l'identifiant est de type string comme je l'ai dit et ce que doit afficher IMG_Load() est de type const char*.
J'ai donc utilisé identifiant.c_str() pour obtenir un const char *.
L'identifiant est ici : ID_0001.
J'ai testé l'affichage grâce à fprintf() et comparé avec strcmp() l'identifiant que je récupérai grâce à identifiant.c_str() et les deux chaines comparées sont strictement identiques.
Mais ça ne fonctionne pas...
Si j'ai été assez clair et que vous avez la solution de mon problème, je vous remercierai de votre aide.
Grégory