2

我有点迷失为什么我的精灵不会显示。我没有收到任何错误,但图像未显示在渲染窗口上。

我像这样加载它:

main.cpp

//before main loop
sf::Sprite background = loadBG(theme["Background"]);
//in main loop
window.draw(background);

我的函数及其标题是:

header

sf::Sprite loadBG(std::string);

cpp

sf::Sprite loadBG(std::string img){

sf::Texture texture;   
if (!texture.loadFromFile(img)){
   exit(1);
}

sf::Sprite sprite(texture); 
    return (sprite);
}

我已经测试了它的值,theme["Background"]它等于test.jpg

我错过了什么让它显示吗?

4

1 回答 1

3

sf::Texture的超出范围。

请尝试以下代码(无错误检查):

void loadBG(sf::Texture& texture, sf::Sprite& sprite, const std::string& img) {
    if(texture.loadFromFile(img))
        sprite.setTexture(texture);
}
于 2012-11-08T03:27:51.797 回答