Forum de la communauté SFML
Aide => Graphique => Discussion démarrée par: kripteks le Novembre 10, 2013, 07:15:55 am
-
Salut à tous.
Dans mon code, j'ai ceci:
window.clear();
window.draw(sprite); // affichage sprite
window.draw(texte); // affichage texte
window.display();
Ça marche bien, mais si je met window.draw(texte) avant window.draw(sprite), mon texte n'est plus visible.
J'avais un coup similaire avec texte-opengl, j'avais résolu avec window.push/popGLStates(), mais pour ce coup je suis un peu perdu.
Je vous donnes mon code quand même:
#include <SFML/Graphics.hpp>
#include <iostream>
int main()
{
sf::ContextSettings settings;
sf::RenderWindow window(sf::VideoMode(800, 600), "sfml", sf::Style::Default, settings);
window.setVerticalSyncEnabled(true);
// chargement du sprite
sf::Texture fondEcran;
fondEcran.loadFromFile("monimage.jpg");
sf::Sprite sprite;
sprite.setTexture(fondEcran);
// chargement font
sf::Font arial;
arial.loadFromFile("arial.ttf");
// chargement texte
sf::Text texte;
texte.setString("hello world");
texte.setFont(arial);
texte.setColor(sf::Color::Black);
while(window.isOpen())
{
sf::Event event;
while(window.pollEvent(event))
{
if(event.type == sf::Event::Closed)
{
window.close();
}
}
window.clear();
window.draw(sprite); // affichage sprite
window.draw(texte); // affichage texte
window.display();
}
return 0;
}
Merci d'avance.
-
Les premiers trucs dessinés sont dessinés plus au fond. Les derniers plus sur le dessus.
Donc forcément si tu draw ton texte avant ton sprite, le sprite va le recouvrir et tu ne verras plus ton texte.
Tu dois dessiner tes éléments du plus profond au plus proche.
Sinon sa != ça
-
C'est bien de l'apprendre.
Merci.