我有点不明白为什么我的 Sprite 无法显示。我没有收到错误,但图像没有显示在渲染窗口上。
我这样加载它:
main.cpp
//before main loop
sf::Sprite background = loadBG(theme["Background"]);
//in main loop
window.draw(background);
我的函数及其标题是:
标题
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
我是否缺少一些东西来让它显示?
最佳答案
您的sf::Texture
超出了范围。
尝试以下代码(不进行错误检查):
void loadBG(sf::Texture& texture, sf::Sprite& sprite, const std::string& img) {
if(texture.loadFromFile(img))
sprite.setTexture(texture);
}
关于C++ Sprite 不显示 - 也没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13281763/