Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: Mysterystem le Juin 22, 2013, 02:28:57 pm

Titre: sf::Text dans une classe héritant de sf::RectangleShape
Posté par: Mysterystem le Juin 22, 2013, 02:28:57 pm
Bonjour à tous !

J'ai programmé une classe héritant de sf::RectangleShape et j'aimerais afficher un sf::Text dans ce sf::RectangleShape, malheureusement j'en ai aucune idée de comment faire.

Quelqu'un peut m'aider s'il vous plait ?

Ma classe héritant de sf::RectangleShape :
#include "NotifBarre.h"
 
NotifBarre::NotifBarre() : sf::RectangleShape(sf::Vector2f(400, 50)){
    sf::RectangleShape::setFillColor(sf::Color(255, 255, 255, 100));
    sf::RectangleShape::setOutlineThickness(1);
    sf::RectangleShape::setOutlineColor(sf::Color(200, 200, 200, 200));
 
    sf::RectangleShape::setPosition(sf::Vector2f(0, 0));
 
    m_text_notif.setString("TEST LOLOLOLO");
    m_text_notif.setColor(sf::Color::White);
    m_text_notif.setCharacterSize(16);
    m_text_notif.setPosition(sf::Vector2f(25, 57));
    m_text_notif.setStyle(sf::Text::Bold | sf::Text::Underlined);
 
}
NotifBarre::~NotifBarre(){}
 
void NotifBarre::setText(std::string text){
    m_text_notif.setString(text);
}

Merci d'avance pour ceux qui m'aideront !

P.S : j'affiche la classe en créant une instance et en faisant window.draw(monInstance);
Titre: Re : sf::Text dans une classe héritant de sf::RectangleShape
Posté par: Mysterystem le Juin 23, 2013, 08:08:57 pm
Je me permet de up, s'il vous plaît, dîtes moi si c'est simplement impossible :(
Titre: Re : sf::Text dans une classe héritant de sf::RectangleShape
Posté par: Hiura le Juin 23, 2013, 08:35:39 pm
Le problème avec cet héritage est que quand tu vas déplacer ton rectangle (avec `setPosition` par exemple) le texte lui ne va pas bouger.. pour mentionner que ce problème.

A la place, hérite de Drawable (avec éventuellement Transformable si tu as besoin de ses fonctionnalités) et fait une aggregation avec un Text et un RecangleShape. Le design sera plus clean comme ça, AMHA.

Tu as un exemple ici : http://www.sfml-dev.org/documentation/2.0/classsf_1_1Transformable.php
Titre: Re : sf::Text dans une classe héritant de sf::RectangleShape
Posté par: Mysterystem le Juin 23, 2013, 09:37:26 pm
Ah merci !

Je me demandais si il fallait passer par sf::Drawable et merci de m'avoir apporté la réponse :D

J'ai donc appliqué la solution et ça marche nickel !