C ++ SFML 2.0从文件加载图像

时间:2012-12-11 15:03:06

标签: c++ image sfml

我是SFML的新手,我正在使用SFML 2.0我只是写了一些代码并且它的工作正常但问题是,我加载图像显示在屏幕上它给我的错误

Failed to load image "Splashscreen.png". Reason : Unable to open file
Failed to load image "Mainmenu.png". Reason : Unable to open file

我从Url加载图片的代码是

对于菜单图像

sf::Texture menuTexture;


menuTexture.loadFromFile("Mainmenu.png");
    {
        sf::Sprite sprite(menuTexture);

        MenuItem playButton;
        playButton.rect.top = 145;
        playButton.rect.height = playButton.rect.top + 380;
        playButton.rect.left = 0;
        playButton.rect.width = playButton.rect.left + 1023; 
        playButton.menuAction = Play;

        MenuItem exitButton;
        exitButton.rect.top = 0;
        exitButton.rect.height = exitButton.rect.top + 1023;
        exitButton.rect.left = 383;
        exitButton.rect.width = exitButton.rect.left + 560; 
        exitButton.menuAction = Exit;

        menuItem.push_back(playButton);
        menuItem.push_back(exitButton);

        window.draw(sprite);
        window.display();

        return GetMenuResponse(window);
    }

对于启动画面图像

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

    sf::Sprite sprite(texture);
    renderWindow.clear();
    renderWindow.draw(sprite,sf::RenderStates::Default);
    renderWindow.display();
    sf::Event event;
        while(true)
        {
            while(renderWindow.pollEvent(event))
            {
                if(event.type == sf::Event::EventType::KeyPressed 
                    || event.type == sf::Event::EventType::MouseButtonPressed
                    || event.type == sf::Event::EventType::Closed)
                {
                    return;
                }
            }
        }

图片未加载任何人都可以帮助解决此问题。

但是当我构建我的项目并且我从调试文件夹运行相同的程序时,我的意思是当我运行exe文件图像时出现但是当我从Visual Studio 2010运行程序时图像没有加载当我运行程序时发布模式程序崩溃。

1 个答案:

答案 0 :(得分:4)

您是否检查过该文件是否在您的工作目录中?它可以与输出目录不同!