Le chargement d'une texture dans SFML échoue sans aucun message expliquant pourquoi

StackOverflow https://stackoverflow.com/questions/19855730

  •  29-07-2022
  •  | 
  •  

Question

J'ai suivi les tutoriels sur SFML et j'ai essayé de charger une texture en utilisant le code suivant

sf::Texture texture;
if (!texture.loadFromFile("image.png"))
{
    return sf::Texture();
}

Cela ne charge pas la texture, le sprite est blanc qui n'est pas la couleur de mon sprite.

Était-ce utile?

La solution

Comme tiré directement du didacticiel graphique-sprite sur le site Web SFML

"The loadFromFile function sometimes fails with no obvious reason. First, check the error message printed by SFML in the
standard output (check the console). If the message is unable to open file, make sure that the working directory (which is the
directory any file path will be interpreted relatively to) is what you think it is: when you run the application from the explorer, the
working directory is the executable folder, but when you launch your program from your IDE (Visual Studio, Code::Blocks, ...) the
working directory is sometimes set to the project directory instead. This can generally be changed easily in the project settings." 

Assurez-vous donc que votre image est d'abord nommée correctement et assurez-vous de vous assurer qu'elle est dans le dossier correct, c'est-à-dire dans votre répertoire de travail.

De plus, si la texture ne charge pas au lieu de renvoyer un sprite vide, vous pouvez signaler une erreur à la console, puis lancer une exception. De cette façon, on vous dit que le sprite ne se charge pas correctement et le programme devra gérer l'exception, sinon il sera terminé. De cette façon, aucun sprite dans le jeu ne devrait avoir une texture blanche à moins que

Quelque chose comme ça:

sf::Texture texture;
if (!texture.loadFromFile("image.png"))
{
    throw std::runtime_error("Could not load image.png");
}

Autres conseils

Chargement d'une PNG? Faites-le 8 bits. D'autres formats PNG peuvent être chargés mais sont toujours affichés sous forme de carrés blancs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top