Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: sf::Text qui ne s'affiche pas  (Lu 7923 fois)

0 Membres et 1 Invité sur ce sujet

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
sf::Text qui ne s'affiche pas
« le: Juin 18, 2012, 05:28:33 pm »
Bonjour à tous !

Le titre fait complètement débile, j'en suis désolé.
Il se trouve que je n'ai jamais eu de problème d'affichage, mais depuis peu,
un petit sf::Text en attribut d'objet refuse de s'afficher.

J'en suis même venu à mettre un "cout" dans la boucle qui l'affiche. J'ai vérifié sa fonte, sa taille, son
texte, tout est bien initialisé, mais il ne se dessine pas. J'ai ensuite essayé de faire un attribut sf::Sprite
à dessiner dans la même boucle, et celui ci s'affiche très bien.

Autre événement étrange, quand je crée l'objet qui a pour attribut ce sf::Text qui ne s'affiche pas,
j'entends un "bip" qui vient du système (Windows).
Ce "bip" me laisse penser que j'ai du faire un truc plus grave que ça en à l'air.

Par ailleurs, tous les autres attributs drawable de l'objets s'affichent très bien. Je ne
comprends vraiment pas la cause.

Merci d'avance pour votre aide ! (même si je suis conscient que mon problème est trop
vague pour être pris en charge... peut être des suggestions de débogage, ou pour
avoir ne serait ce qu'une idée de la cause ?)
« Modifié: Juin 18, 2012, 06:28:39 pm par Macrob »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : sf::Text qui ne s'affiche pas
« Réponse #1 le: Juin 18, 2012, 06:56:39 pm »
En effet c'est trop vague. Il faut voir du code, et pas tout ton code d'origine parce que ce serait probablement bien trop gros à examiner. Donc : il faut que tu recrées le problème dans un code complet minimal (ou alors que tu allèges ton code actuel au maximum sans faire disparaître le bug -- ce qui revient au même au final).
Laurent Gomila - SFML developer

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : sf::Text qui ne s'affiche pas
« Réponse #2 le: Juin 18, 2012, 10:25:06 pm »
Salut Laurent !

Comme tu ma l'as conseillé j'ai essayé un code minimal.
Et bien je n'ai rien trouvé de concluant.

Juste une initialisation de sf::Text, et une boucle qui la dessine :


Mon_objet::Mon_objet()
{
    // Je garde la police par défaut exprès
    m_texte.setCharacterSize(16);
    m_texte.setString("TEST");
    m_texte.setStyle(sf::Text::Bold);
    m_texte.setPosition(SCREEN_W/2, SCREEN_H/2);

    sf::Texture texture;
    texture.loadFromFile("image.png");
    m_sprite.setTexture(texture);
    m_sprite.setPosition(SCREEN_W/2, SCREEN_H/2);

    cout << "Mon objet a ete cree" << endl;
}

void Mon_objet::dessiner()
{
    // Appelé en boucle

    app.draw(m_sprite);
    app.draw(m_texte);

    // Le sprite s'affiche très bien et non le texte.
}

 



En fait, pour être tout à fait précis, le problème n'apparaît que quand j'ai deux applications en réseau.
Les deux reçoivent pourtant le même ordre de creer et de dessiner un objet.
Or, c'est toujours la 2ème appli qui n'affiche pas le texte (mais encore une fois elle affiche très bien le sprite).

Bref c'est vraiment étrange, je suis complètement à la ramasse.
« Modifié: Juin 18, 2012, 10:28:56 pm par Macrob »

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : sf::Text qui ne s'affiche pas
« Réponse #3 le: Juin 18, 2012, 10:31:12 pm »
 sf::Texture texture;
    texture.loadFromFile("image.png");
    m_sprite.setTexture(texture);
    m_sprite.setPosition(SCREEN_W/2, SCREEN_H/2);

Tu fait une erreur avec le sprite, tu ne gardes pas la texture , elle est détruite à la fin de ton constructeur.
ca ne m'étonnerais pas que ton erreur vienne de là, car là, y a bug.

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : sf::Text qui ne s'affiche pas
« Réponse #4 le: Juin 18, 2012, 10:58:26 pm »
Non désolé, c'est moi qui ai mal recopié par flemme :)
(en réalité la texture est un attribut de l'objet !)

J'ai changé ça pour rendre le code plus clair. En fait le problème vient du texte  :-[

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : sf::Text qui ne s'affiche pas
« Réponse #5 le: Juin 18, 2012, 11:06:08 pm »
bizarre... tu peut faire un packatage près à compilé ?
le peu de code que tu as mis ne donne pas de piste, le problème dois venir d'autre part.

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : sf::Text qui ne s'affiche pas
« Réponse #6 le: Juin 19, 2012, 12:20:57 pm »
Désolé, je mets un peu de temps à faire le package... Le projet était déjà assez avancé, donc pas facile de faire un code minimal qui reproduise l'erreur !

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : sf::Text qui ne s'affiche pas
« Réponse #7 le: Juin 20, 2012, 12:10:11 pm »
Bon ça me rend fou, c'est juste incompréhensible.

Je pense que c'est dû à une variable non initialisée, et qui prendrait une valeur aberrante... et qui pour une raison qui me dépasse, empêcherait ce texte de s(afficher !

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : sf::Text qui ne s'affiche pas
« Réponse #8 le: Juin 20, 2012, 01:44:13 pm »
tu peut pas faire un zip de ton code et le mettre en ligne ? ( par mp si tu préfères... ) , car à part spéculer sur d'éventuelles erreurs , on ne peut rien faire.

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : sf::Text qui ne s'affiche pas
« Réponse #9 le: Juin 20, 2012, 05:34:07 pm »
Je vais essayer de traquer cette erreur, mais pour l'instant ce serait très malpoli de ma  part de vous envoyer le code, c'est long et peu lisible.
Je dois faire ma part du travail, et si je réussi à faire un code minimal qui reproduit l'erreur je posterai ici !

Merci beaucoup

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : sf::Text qui ne s'affiche pas
« Réponse #10 le: Juin 20, 2012, 06:54:09 pm »
Citer
Je vais essayer de traquer cette erreur, mais pour l'instant ce serait très malpoli de ma  part de vous envoyer le code, c'est long et peu lisible.
Je dois faire ma part du travail, et si je réussi à faire un code minimal qui reproduit l'erreur je posterai ici !
Bravo ! Je vais imprimer ce message, l'encadrer et l'accrocher dans ma chambre :D :D :D
Laurent Gomila - SFML developer

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : sf::Text qui ne s'affiche pas
« Réponse #11 le: Juin 20, 2012, 11:30:56 pm »
Merci, même si je ne sais pas trop comment le prendre !  ;D 

Cette erreur m'est tellement pénible que j'ai pensé qu'elle s’allégerait si je la partageais sur un forum  ::)
Quand je suis seul, j'ai l'impression de devenir fou et de stagner sur le code  :o

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : sf::Text qui ne s'affiche pas
« Réponse #12 le: Juin 21, 2012, 07:20:36 am »
Citer
Merci, même si je ne sais pas trop comment le prendre
Comme un compliment, pour le seul et unique message sur ce forum qui va dans le bon sens, face au millier de "j'ai un blèm', voilà tout mon code, a+".
Laurent Gomila - SFML developer

Bigz

  • Full Member
  • ***
  • Messages: 154
    • Voir le profil
    • Bigz.fr
Re : sf::Text qui ne s'affiche pas
« Réponse #13 le: Juin 21, 2012, 11:24:59 am »
Citer
Quand je suis seul, j'ai l'impression de devenir fou et de stagner sur le code

C'est d'ailleurs un problème récurrent, à force de regarder son son propre oeil le même code inlassablement, on en fini par plus rien voir, même les grosses boulettes, alors qu'elles peuvent sauter au yeux de quelqu'un qui y jette un oeil pour la première fois.

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : sf::Text qui ne s'affiche pas
« Réponse #14 le: Juin 21, 2012, 12:16:03 pm »
Citer
C'est d'ailleurs un problème récurrent, à force de regarder son son propre oeil le même code inlassablement, on en fini par plus rien voir, même les grosses boulettes, alors qu'elles peuvent sauter au yeux de quelqu'un qui y jette un oeil pour la première fois.
Oui exactement !

M'enfin j'ai réussi à "régler" le problème, mais d'une façon que je n'aime pas vraiment : j'ai mis un .setString() dans la boucle qui affiche le texte...
Le problème est certes réglé, mais je ne comprends toujours pas l'origine du problème (car j'avais bien initialisé le texte dans le constructeur), et la solution trouvée n'est pas très propre.

Merci à tous, bonne journée !