Wie direkt aus dem Tutorial für Grafik-Sprite auf der SFML-Website genommen
"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."
Stellen Sie daher sicher, dass Ihr Bild zuerst richtig benannt ist, und stellen Sie nacheinander sicher, dass es sich im richtigen Ordner befindet, dh in Ihrem Arbeitsverzeichnis.
Auch wenn die Textur nicht lädt, anstatt ein leeres Sprite zurückzugeben, können Sie einen Fehler an die Konsole melden und dann eine Ausnahme ausgeben. Auf diese Weise wird Ihnen mitgeteilt, dass der Sprite nicht richtig geladen wird und das Programm die Ausnahme behandeln muss, da es sonst beendet wird. Auf diese Weise sollte kein Sprite im Spiel eine weiße Textur haben, sofern nicht beabsichtigt
Etwas wie das:
sf::Texture texture;
if (!texture.loadFromFile("image.png"))
{
throw std::runtime_error("Could not load image.png");
}