Хобрук: Ваш путь к мастерству в программировании

почему не отображается изображение sfml?

я пытаюсь установить фон в своем sfml-приложении, но появляется ошибка Код:

 Image hero_image;
hero_image.loadFromFile("image/main.png");
Texture hero_texture;
hero_texture.loadFromImage((hero_image));

Sprite hero_sprite;
hero_sprite.setTexture(hero_texture);
hero_sprite.setPosition(50,30); 
//main loop
window.draw(hero_sprite);

Ошибка:

Failed to load image "image/main.png". Reason: Unable to open file
Failed to create texture, invalid size (0x0)
01.08.2020

  • Похоже, вы запустили свой исполняемый файл с неправильным рабочим каталогом, или файл изображения поврежден, или у вас нет разрешения на чтение файла. 01.08.2020
  • MikeCAT, ну... как решить проблему с каталогом?.. 01.08.2020
  • Используйте проводник, чтобы выяснить, где находится изображение. Затем прочитайте документацию по вашей среде IDE, чтобы выяснить, какую папку она устанавливает в качестве рабочего каталога при отладке вашего приложения. Второй метод заключается в том, чтобы просто создать файл в вашем коде С++ и использовать проводник туда, куда он его поместит. После того, как вы выясните, какой рабочий каталог является правильным, отрегулируйте путь к файлу изображения. 01.08.2020
  • Вы используете Visual Studio? Если это так, помните, что каталог, в котором находится ваш .exe, не является вашим активным каталогом при запуске исполняемого файла из Visual Studio. 03.08.2020

Ответы:


1

Первая ошибка Failed to load image "image/main.png". Reason: Unable to open file вызвана тем, что вы, вероятно, ввели неверный путь к файлу. По пути "image/main.png" ваше изображение должно находиться в папке с именем image, а ваше изображение с именем main.png должно быть внутри этой папки :). И, конечно же, ваша папка image должна находиться внутри вашего проекта с файлами .cpp и .h. Вторая ошибка вызвана тем, что когда Image hero_image; не загружается должным образом из-за ошибки Failed to load image "image/main.png". Reason: Unable to open file, ваш Image hero_image; пуст.

Также бесполезно использовать экземпляр sf::Image, который вы загружаете в sf::Texture. Попробуйте сделать просто:

sf::Texture hero_texture;
hero_texture.loadFromFile("image/main.png");
sf::Sprite hero_sprite;
hero_sprite.setTexture(hero_texture);
26.01.2021
  • Просто исправление: файл изображения должен находиться в том же каталоге, что и исполняемый файл, а не файлы .cpp/.h. 26.01.2021
  • @Diego, ты прав, если запускаешь игру из своего исполняемого файла. Но если вы запускаете игру из отладчика или IDE, то ваши ресурсы должны быть там, где я упомянул. 27.01.2021
  • Новые материалы

    Как симулировать серию пенальти на Python с помощью симуляции Монте-Карло, часть 1: генерация функций
    Серия пенальти была огромным испытанием во время чемпионата мира по футболу. Они вызвали много споров в социальных сетях и новостных агентствах. Даже финальный матч турнира решался по..

    AST для разработчиков JavaScript
    TL; DR Эта статья - мое выступление на недавно состоявшейся конференции Stockholm ReactJS Meetup. Вы можете посмотреть слайды здесь..

    5 проектов на Python, которые нужно создать прямо сейчас!
    Добро пожаловать! Python — один из моих любимых языков программирования. Если вы новичок в этом языке, перейдите по ссылке ниже, чтобы узнать о нем больше:

    Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
    DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

    «Очень простой» эволюционный подход к обучению с подкреплением
    В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

    Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
    Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

    Фишинг — Упаковано и зашифровано
    Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..