C ++ Sprite不显示 - 也没有错误

时间:2012-11-08 03:02:00

标签: c++ sfml

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

我像这样加载它:

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

我错过了要展示的东西吗?

1 个答案:

答案 0 :(得分:3)

您的sf::Texture超出了范围。

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

void loadBG(sf::Texture& texture, sf::Sprite& sprite, const std::string& img) {
    if(texture.loadFromFile(img))
        sprite.setTexture(texture);
}