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

标签 c++ sfml

我有点不明白为什么我的 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/

相关文章:

c++ - 高效的数据包类型/传输协议(protocol)

c++ - PeekMessage问题

c++ - 使用 SFML 为 Catan 创建板

c++ - 编译 SFML 时链接 'static libraries' 的顺序是什么?

opengl - 如何在 C++ 中的 OS X Mavericks 中设置 OpenGL 4.1 渲染上下文?

c++ - 如何为比对象所有者生存时间短的类组织对象所有权?

C++ 沿角度移动二维点

c++ - 使用 Cmake 移动 .gcda 文件

c++ - 项目的库位置

c++ - SFML 字体。屏幕上不显示信息。显示的不是信息,而是一个点