Bonjours,
Je code sur visual studio, pour mon école on dois faire un projet de mathématique basé sur les transformations matriciel. J'ai donc décider de faire une interface graphique avec un repère et tout.
Je voulais donc faire un petit menu avec clique droit sur un point qui me permet de le transformer mais je rencontre une problème avec le sf::Text :
Lorsque j'affiche mon texte des gros carrés plein s'affiche au lieu de mes caractères. J'ai d'abord essayer de voir si ce n'était pas un problème de mémoire avec le font qui est détruit mais non, mettre un pointeur n'a rien changer, j'ai donc décider de faire un font dans le main et lorsque je créer mon objet je passe le font dans le constructeur en référence mais rien n'y fait.
C'est assez génant..
Je vous passe les bouts de codes qui utilise les fonts :
main :
sf::Font font;
if (!font.loadFromFile("arial.ttf"))
{
cerr << "Impossible de charger le fichier." << endl;
exit(0);
}
sf::RenderWindow win(sf::VideoMode(1024, 768), "Le titre de ma fenetre");
m3d::ML_Point p1(5, 0), p2(2, 2), p3(1, 1), p4(5, 8);
sf::CircleShape point(5.0f, 30);
ML_Menu menu_add(sf::Color(50,50,255), sf::Color(190,190,190), 120, 30);
menu_add.addBoutton("Add point", test, font);
menu_add.addBoutton("Quit",test1, font);
ML_Menu menu_point(sf::Color(50,50,255), sf::Color(190,190,190), 120, 30);
menu_point.addBoutton("Translate", test, font);
menu_point.addBoutton("Homotety", test, font);
menu_point.addBoutton("Rotate", test, font);
menu_point.addBoutton("Symmetry", test, font);
menu_point.addBoutton("Delete",test1, font);
Menu::addBoutton
void ML_Menu::addBoutton(std::string texte, void(*func)(sf::RenderWindow &win, m3d::ML_Point &pt), sf::Font &font)
{
boutton.push_back(new ML_Boutton(col_on, col_off, texte, func, font, t_x, t_y));
}
Constructeur ML_Boutton
ML_Boutton::ML_Boutton(sf::Color on, sf::Color off, string texte, void(*func)(sf::RenderWindow &win, m3d::ML_Point &pt), sf::Font &font, int x, int y)
{
color_on = on;
color_off = off;
rec = sf::RectangleShape(sf::Vector2f(x, y));
text_boutton.setString(texte);
text_boutton.setFont(font);
text_boutton.setCharacterSize(14);
is_collision = false;
is_visible = true;
m_func = func;
}
Merci d'avance pour vos réponse.