我使用SFML 2.3構建遊戲,並且我有一個非常奇怪的問題。我有兩個不同的紋理文件,都是.png,但其中一個拒絕繪製。使用SFML和紋理構建遊戲拒絕繪製
我沒有收到任何錯誤消息。出於某種原因,TextureA的作品看起來很好,但TextureB沒有繪製。
我確保代碼是正確的,檢查大寫字母,我都在同一個文件夾,並嘗試了一切。 我甚至嘗試過輸入TextureA來代替TextureB,並且TextureA被繪製得很好。我認爲問題可能與.png文件本身有關,但我無法弄清楚它是什麼。
在此先感謝!
我使用SFML 2.3構建遊戲,並且我有一個非常奇怪的問題。我有兩個不同的紋理文件,都是.png,但其中一個拒絕繪製。使用SFML和紋理構建遊戲拒絕繪製
我沒有收到任何錯誤消息。出於某種原因,TextureA的作品看起來很好,但TextureB沒有繪製。
我確保代碼是正確的,檢查大寫字母,我都在同一個文件夾,並嘗試了一切。 我甚至嘗試過輸入TextureA來代替TextureB,並且TextureA被繪製得很好。我認爲問題可能與.png文件本身有關,但我無法弄清楚它是什麼。
在此先感謝!
有一個與紋理和SFML捕捉。 Sprites假定他們不是紋理資源的所有者。由此,您必須確保在您嘗試繪製時紋理仍然存在。看看這裏的代碼:
sf::Sprite makeSprite() {
sf::Texture tex;
tex.loadFromFile("someTexture.png");
sf::Sprite sprite;
sprite.setTexture(tex);
// You indeed return the sprite, but tex is going out of scope here.
return sprite;
}
// further code will draw the sprite as a white square.
而是,嘗試保持加載紋理列表中的紋理。你可以在某處保留一個矢量,或者簡單地把你的紋理作爲靜態變量放在函數makeSprite
中。我強烈建議而不是使用靜態或全局變量,因爲它們是設計缺陷的第一個標誌,但它仍然是一個有效的解決方案。
idk爲什麼要添加那個工作。非常感謝! – Zbadrawy
@Zbadrawy你真的想不知道爲什麼加入工作? – user2296177
http://www.sfml-dev.org/tutorials/2.4/graphics-sprite.php –
在問題中發佈您的代碼。最簡單的例子請參閱[SSCCE](http://sscce.org/) –
請看看[mcve](http://stackoverflow.com/help/mcve) –