2012-12-11 127 views
0

我是新來的SFML和我使用SFML 2.0我只寫了一些代碼,它的工作正常,但問題是,我加載圖像顯示在屏幕上它給我的錯誤,C++ 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 

我的代碼從地址加載圖像是

對於菜單圖像

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

您是否檢查過該文件在您的工作目錄中?它可以不同於輸出目錄!

+0

感謝他解決了我的問題我已將文件移動到工作目錄及其工作 –

+0

但程序未在發佈模式下運行其崩潰 –

+0

您可以爲調試和發佈模式設置不同的設置。因此,請檢查您是否已將更改應用於所有配置。我有修改工作目錄到輸出目錄的習慣,並有所有需要的文件。爲我節省了很多麻煩。 – Skalli