Forum de la communauté SFML
Aide => Général => Discussion démarrée par: MasterKey le Novembre 01, 2016, 07:49:44 am
-
Bonjours , J'ai un probleme pour charger ma Texture ... je regarder beaucoup de tuto mais je trouve pas l'erreur
#pragma region variables
sf::RenderWindow window;
sf::RectangleShape rect;
sf::RectangleShape PB_Rect;
sf::Texture perso;
sf::Sprite sprite_perso;
void gestion_clavier();
#pragma endregion variables
int main()
{
window.create(sf::VideoMode(500, 600), "idk");
if (!perso.loadFromFile("player.png"))
{
std::cout << "Erreur de chargement" << std::endl;
}
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
//Gestion du clavier
gestion_clavier();
//Mise a jours
window.display();
window.clear();
}
return 0;
}
j'ai fait sa pour la charger , jai aucune erreur mais dans ma console on m'indique : Failed to load Image "player.png".Reason :Unable to open file //Erreur de chargement
Pourtant je fait comme dans les tuto , quelqu'un sais pourquoi j'arrive pas a charger ma Texture? :-\
-
Sûrement qu'elle n'est pas au bon endroit.
La fonction loadFromFile échoue parfois sans raison apparente. Première chose à faire, vérifiez le message d'erreur affiché par SFML dans la sortie standard (la console). Si le message est unable to open file, assurez-vous que le répertoire de travail (qui est le répertoire relativement auquel tout fichier sera interprété) est celui auquel vous vous attendez : lorsque vous lancez votre application depuis l'explorateur de fichiers, le répertoire de travail est le répertoire de l'exécutable, pas de problème généralement dans ce cas ; mais si vous lancez votre programme depuis votre EDI (Visual Studio, Code::Blocks, ...) alors le répertoire de travail est parfois le répertoire du projet. Pas de panique : cela peut normalement être modifié directement dans les options de votre projet.
-
Okok, mais quand vous dite pas au bon endroit vous voulez dire quoi?(desoler je suis debutant ^^) sfml parle de changer quelque chose depuis la proprietie mais c'est quoi s.v.p ?:p
-
Le chemin que tu donnes là c'est "player.png", et c'est à partir du répertoire de travail.
Quand tu lances ton programme avec Visual Studio, le répertoire de travail par défaut c'est le répertoire du projet, là où il y a tes .cpp je crois, et c'est là que tu dois mettre l'image si tu veux y accéder avec un simple "player.png".
(Alors que si tu lances ton programme directement en cliquant sur l'exe le répertoire de travail c'est là où il y a l'exe)
Bref, elle est où ton image ?
-
Pour être tranquille , il faut généralement mettre les ressources dont tu as besoin directement dans le répertoire du projet , la ou tu as ton .cpp tu doit avoir un dossier qui se nomme Release et un un autre Debug , il faut que tu mette ton image dedans et alors tu pourra l'ouvrir en indiquant seulement player.png dans ton code.
Plus tard si tu met de la musique c'est pareil , tout devra être dans ces deux dossier. D'ailleurs la SFML ne lit que des .ogg donc il faudra convertir tes sons :)