Загрузка текстуры в SFML не удается без сообщения о том, почему

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

  •  29-07-2022
  •  | 
  •  

Вопрос

Я следил за учебными пособиями по SFML и попытался загрузить текстуру, используя следующий код

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

Это не загружает текстуру, спрайт белый, который не является цветом моего спрайта ..

Это было полезно?

Решение

Как взято непосредственно из учебника Graphics-Sprite на веб-сайте 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." 

Поэтому убедитесь, что ваше изображение в первую очередь названо правильно, и второстепенно убедитесь, что оно находится в правильной папке, т.е. в вашем рабочем каталоге.

Кроме того, если текстура не загружается вместо возврата пустого спрайта, вы можете сообщить об ошибке в консоли, а затем бросить исключение. Таким образом, вам скажут, что спрайт не загружается правильно, и программа должна будет обрабатывать исключение, иначе это будет прекращено. Таким образом, ни один спрайт в игре не должен иметь белую текстуру, если не намеренно

Что-то вроде этого:

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

Другие советы

Загрузка PNG? Сделайте это на 8 бит. Другие форматы PNG могут быть загружены, но всегда отображаются в виде белых квадратов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top