J'ai un probleme avec la fonction censé creer du texte sur une surface, ca ne m'indique pas d'érreur et le jeu se lance bien mais au moment de la fonction ca plante voile le code :
texte = TTF_RenderText_Blended(akbar, nomeArme(joueur.arme), blanc); // On crée le texte de l'arme
texte est utilisé avant mais je le vide tout le temps et voila nomeArme(); :
En effet, tu renvoie un pointeur sur un tableau déclaré en local, il ne faut pas que ce tableau soit écrasé lorsque tu sors de la fonction : static est une solution pour éviter cela.
teste si ta variable heroForme est a NULL ou non avant de continuer !
Si elle est a NULL, alors c'est le plantage assuré !
et ça veut dire que ton image a charger n'a pas été trouvée
teste si ta variable heroForme est a NULL ou non avant de continuer !
Si elle est a NULL, alors c'est le plantage assuré !
et ça veut dire que ton image a charger n'a pas été trouvée
Pour ma part je trouve ça long comme méthode car il faudrait le faire pour chaque instructions SDL et vérifier dans le stdout.txt. Parcontre lors de bug, c'est vivement conseillé
Et justement, idéalement, ce qu'il faut faire, c'est ne pas avoir une liste interminable de "LoadImage"
Il est évident que si tu as une longue liste de LoadImage, alors oui, tester les valeurs de retour a NULL, une par une, c'est long.
Mais !!
Si tu factorises un peu, déja, tu peux éviter d'avoir une colonie de "LoadImage", et/ou sinon, si les images chargées sont dans un tableau, il est facile, avec un seul for, de faire une boucle pour tester toutes les images chargées en 2 lignes !
Et justement, idéalement, ce qu'il faut faire, c'est ne pas avoir une liste
Si tu factorises un peu, déja, tu peux éviter d'avoir une colonie de "LoadImage", et/ou sinon, si les images chargées sont dans un tableau, il est facile, avec un seul for, de faire une boucle pour tester toutes les images chargées en 2 lignes !
C'est ce que je fais, juste un peu de logique dans le nom des sprites et voilà.
Pour ceux que ça intéresse:
void initialisationSprites(SDL_Surface *surface[][3], char *perso, long nbAnimation, long nbDeSpriteParAnim)
{
size_t i = 0, j = 0;
char chaine[200];
/* On attache chaque surface à une image et on vire le fond */
d'acc !!
Donc la, tu n'as qu'un seul if a mettre, qui teste si surface[i][j] n'est pas NULL, sinon, tu lances une exeption, un printf ou une messageBox
× 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.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html