SDL Error : Text has zero width

Plus d'informations
il y a 4 mois 1 semaine - il y a 4 mois 1 semaine #6634 par oktopuss
oktopuss a créé le sujet : SDL Error : Text has zero width
Bonjour à tous !

Je viens de rencontrer un problème étrange dans mon jeu : celui-ci se coupe tout seul là où auparavant cela fonctionnait parfaitement.

J'ai créé une petite fonction afin de voir les erreurs SDL :
void saveError(void)
{
    FILE* file = NULL;
    char *chaine[250];

    sprintf(chaine, "%s", SDL_GetError());

    file = fopen("info.log", "r+");
    if(file != NULL)
    {
        fputs(chaine, file);
        fclose(file);
    }
}

Dans mon main, j'ai rajouté atexit(saveError); afin de voir les éventuelles erreurs lors de la fermeture brusque du programme.

Du coup, dans mon fichier info.log, j'ai le texte suivant : Text has zero width.

Est-ce que quelqu'un a déjà rencontré ce problème ?
Dernière édition: il y a 4 mois 1 semaine par oktopuss.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 mois 1 semaine #6635 par jay81
jay81 a répondu au sujet : SDL Error : Text has zero width
Salut Oktopuss, ;)

Est-ce que tu as changé de version de SDL ou de compilateur depuis la dernière fois ? Car si le code fonctionnait avant, normalement, il n'y a pas de raison.

Maintenant, je sais que pour certaines fonctions concernant les strings en C, elles sont dépréciées dans Visual Studio, comme le sprintf(), il me semble de mémoire. ;)

Sinon, ton fichier texte contient bien quelque chose et est lisible (droits) ? car l'erreur semble être que sa largeur est nulle. Si c'est pour de l'affichage, ça créerait une image nulle...

@+

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 mois 1 semaine #6636 par oktopuss
oktopuss a répondu au sujet : SDL Error : Text has zero width
Salut Jay !

Est-ce que tu as changé de version de SDL ou de compilateur depuis la dernière fois ?

Non, je suis sur les mêmes version depuis le commencement du projet.

Sinon, ton fichier texte contient bien quelque chose et est lisible (droits) ?

Je viens de vérifier les droits des fichiers de monstres (c'est après l'ouverture d'un fichier, et l'affichage des informations du monstre que ça coupait), et j'ai tout mis en accès total. Et hourra ! ça n'a pas planté une seule fois sur une 20ene de test de lancement de combat effectué.

J'espère que ça va tenir le coup :P

Merci beaucoup ! ça me prenait vraiment la tête.

@+

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 mois 1 semaine #6637 par jay81
jay81 a répondu au sujet : SDL Error : Text has zero width
Alors, c'était bien un problème de droits. Le truc bête auquel on ne pense jamais quand on a le nez dans le code ! ;)

Le fait qu'il n'arrive pas à lire le fichier m'a mis la puce à l'oreille. Ça m'est déjà arrivé avec le site web, ce genre de problème. :P

@ bientôt. :D

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 mois 1 semaine - il y a 4 mois 1 semaine #6638 par oktopuss
oktopuss a répondu au sujet : SDL Error : Text has zero width
Salut !

Visiblement ce n'était pas que ça. Hier après avoir changé les droits des fichiers tout fonctionnait bien, ce matin je me lance et j'ai le même soucis :angry:

J'aurais dù battre le fer tant qu'il était chaud :S

Edit 1 :
J'ai vu un post sur openclassroom où le problème venait de la police d'écriture. Cela me parait étrange dans la mesure où auparavant il n'y avait pas de problèmes.
J'ai testé avec d'autres polices, et cela fonctionne là ou ça plante avec mon actuelle. Mais c'est l'actuelle que je veux utiliser :angry:

Edit 2 :
Bon, après une vingtaine de test, le problème est revenu même avec une police différente, le problème court toujours !
Dernière édition: il y a 4 mois 1 semaine par oktopuss.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 mois 1 semaine #6639 par oktopuss
oktopuss a répondu au sujet : SDL Error : Text has zero width
Ok, je pense avoir localisé le soucis :

Dans ma fonction drawString :
if (surface != NULL)
    {
        // Du code
    }
    else
    {
        printf("La chaine n'a pu être écrite %s: %s\n", text, TTF_GetError());
        exit(0);
    }

ça coupe le programme si la surface est nulle. J'ai un panel d'erreur, et ai donc modifié le code de la sorte :
if (surface != NULL)
    {
        // Du code
    }
    else
    {
        sprintf(aff.erreur, "La chaine n'a pu être écrite : %s => %s", text, TTF_GetError());
        var.etat = ERROR;
    }

Et j'ai comme retour :
La chaine n'a pu être écrite :  => text has zero width

Il s'agit bien d'une chaine vide !

Maintenant il me reste à trouver pourquoi parfois elle est remplie, et parfois elle est vide.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.211 secondes