C ++ SFML纹理和类中的精灵(白盒子)

时间:2016-08-30 15:37:48

标签: c++ sfml

因此,我正在寻找一个月的答案,没有人无法弄清楚发生了什么。我有类Gamerite,其中有精灵和纹理,当我调用函数 - > getSprite()并在我的窗口上绘制它时我只得到白盒子。我再次重新输入我的代码3次,我一次又一次地遇到同样的问题。如果有人帮助我,我会很高兴。这是我的文件。 files

1 个答案:

答案 0 :(得分:0)

我曾经遇到过同样的问题。 我努力加载纹理(.png),但我做了一个函数,你只需要给它源(作为一个字符串),然后它返回有效的sf :: Sprite。

//loads a graphic from a source
static sf::Sprite loadSprite(std::string source){
    static sf::Texture t;
    if (!t.loadFromFile(source)){
        std::cerr << "Error: File couldn't be loaded" << std::endl;
    }
    static sf::Sprite s;
    s.setTexture(t);
    return s;
}

尝试为GameObject.h提供此功能(也可能是其他文件)。 要使用它,只需添加

即可
void setSprite(std::string source){
    sprite = loadSprite(source); //call that function
}

函数到你的一个GameObject.h公共成员函数中,你也可以从构造函数调用。 试试看!祝你好运