我有点迷失为什么我的精灵不会显示。我没有错误,但图像不会显示在渲染窗口上。
我像这样加载它:
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
我错过了要展示的东西吗?
答案 0 :(得分:3)
您的sf::Texture
超出了范围。
请尝试使用以下代码(无错误检查):
void loadBG(sf::Texture& texture, sf::Sprite& sprite, const std::string& img) {
if(texture.loadFromFile(img))
sprite.setTexture(texture);
}