2

スプライトが表示されない理由に少し迷っています。エラーは発生しませんが、レンダリングされたウィンドウに画像が表示されません。

私はそれをこのようにロードします:

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

表示させるために何かが足りませんか?

4

1 に答える 1

3

あなたsf::Textureは範囲外です。

代わりに次のコードを試してください(エラーチェックなし):

void loadBG(sf::Texture& texture, sf::Sprite& sprite, const std::string& img) {
    if(texture.loadFromFile(img))
        sprite.setTexture(texture);
}
于 2012-11-08T03:27:51.797 に答える