0

我是 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 运行程序时,图像没有加载并且当我在发布模式下运行程序时程序崩溃。

4

1 回答 1

4

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

于 2012-12-11T15:06:53.930 回答