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

Auteur Sujet: [Résolu] sf::Text ne se draw pas ?  (Lu 1606 fois)

0 Membres et 1 Invité sur ce sujet

eldoir

  • Newbie
  • *
  • Messages: 5
    • Voir le profil
    • E-mail
[Résolu] sf::Text ne se draw pas ?
« le: Décembre 07, 2014, 01:53:47 am »
Bonsoir tout le monde,
Je voulais implémenter un petit truc tout bête qui pourtant ne marche pas :
Je veux pouvoir contrôler le fade-in/out de mes textes, autrement dit je veux que leur composante alpha augmente doucement à la création du texte, puis qu'au bout d'un certain temps elle diminue jusqu'à atteindre de nouveau zéro.
Je le fais déjà avec un texte simple. Mais le procédé est assez lourd, je voudrais donc pouvoir encapsuler cette technique dans une classe que j'appellerais MyText.
Et bien, rien ne marche : Faire que MyText hérite de sf::Text, ou même simplement faire que MyText utilise en variable privée un sf::Text, rien ne plante mais le texte n'a pas l'air de se dessiner ! J'ai vérifié les valeurs des champs du texte, elles  sont pourtant correctement assignées. Qu'est-ce qui ne va pas ?

Merci d'avance de votre réponse :)
Voici un bout de code :

MyText.h :

#ifndef MYTEXT_H
#define MYTEXT_H

#include "" // tout ce qu'il faut pour que le prog marche, je ne vais pas en faire la liste...

class MyText : public sf::Text {

    public:
        MyText(sf::Font, std::string, int, sf::Vector2f, sf::Color);
};

#endif
 

MyText.cpp :

#include "MyText.h"

using namespace std;
using namespace sf;

MyText::MyText(Font font, string str, int size, Vector2f pos, Color col)
  : Text()
{
    setFont(font);
    setString(str);
    setCharacterSize(size);
    setPosition(pos.x-getGlobalBounds().width/2, pos.y-getGlobalBounds().height/2);
    setColor(col);
}
 

Et dans mon main.cpp, je crée le texte comme ceci avant la boucle principale :

MyText text (font, "Coucou", 24, Vector2f(0, 0), Color::white);
 

Et je le draw simplement comme ceci à la fin de ma boucle principale :

App.draw(text);
 

Tout le reste de mon programme fonctionne bien, donc c'est pas un truc à la con genre j'ai mis le draw avant le clear ou un truc du genre...

Si vous avez une idée :)

(P.S : j'ai fait pas mal de changements dans mes fichiers, donc en fait ce que je viens de vous écrire comme code je ne l'ai pas testé je l'ai écrit de mémoire, donc pardonnez les fautes à la compil s'il y en a ^^)
« Modifié: Décembre 09, 2014, 05:47:20 am par eldoir »

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : sf::Text ne se draw pas ?
« Réponse #1 le: Décembre 07, 2014, 03:47:40 am »
Et en passant la font par référence ?

eldoir

  • Newbie
  • *
  • Messages: 5
    • Voir le profil
    • E-mail
Re : sf::Text ne se draw pas ?
« Réponse #2 le: Décembre 07, 2014, 05:19:32 am »
Effectivement, bien joué ! Merci beaucoup ^^