-Premièrement: Pour pouvoir utiliser votre police, il doit être présent dans les polices dans le dossierdossier principal de votre projet, sinon la fonction loadFromFile()
doit renvoyer une valeur false, mais notez que cela est écrit dans la documentation officielle:
La fonction loadFromFile peut parfois échouer sans raison évidente
-Deuxièmement: comme mentionné par @ pmaxim98, vous devez appeler la fonction clear()
avant tout dessin, et l'argument de couleur doit être différente de la couleur de remplissage de texte afin que vous pouvez voir le texte affiché.
-Troisièmement: essayer de mettre le fichier de police dans le dossier principal de votre projet et essayez ce code minimal:
#include <SFML/Graphics.hpp>
#include <iostream>
using namespace std;
using namespace sf;
int main()
{
RenderWindow window(VideoMode(800,600),"TEXT");
/****************************************************/
//Declare a Font object
Font font;
//Load and check the availability of the font file
if(!font.loadFromFile("arial.ttf"))
{
cout << "can't load font" << endl;
}
//Declare a Text object
Text text("Score = 0",font);
//Set character size
text.setCharacterSize(100);
//Set fill color
text.setFillColor(Color::White);
/****************************************************/
while(window.isOpen())
{
Event event;
while(window.pollEvent(event))
{
if(event.type == Event::Closed){window.close();}
}
//Clear the window
window.clear();
//Draw the text
window.draw(text);
//Display the text to the window
window.display();
}
return 0;
}
Bonne chance.
Où est window.clear()? Assurez-vous également de ne pas dessiner sur un fond blanc. – pmaxim98
mettez font.loadFromFile ("fonts/arial.tff"); dans une condition aussi, afin de vérifier si la police est chargée – pmaxim98
le window.clear est là, oublié de l'inclure et l'arrière-plan est vide. Je pense que la police n'est pas en cours de chargement, donc le chemin de la police peut être incorrect. –