Так что я новичок в SFML. Я прочитал много постов, но я действительно не понимаю.
Я написал держатель текстур:
class tile_texture_holder {
private:
sf::Texture tx;
public:
tile_texture_holder(type a) {
switch (a) {
case type::desert:
tx.loadFromFile("C:/Users/Andreas/source/repos/conquer/Media/desert.png");
break;
case type::grass:
tx.loadFromFile("C:/Users/Andreas/source/repos/conquer/Media/grass.png");
break;
case type::mountain:
tx.loadFromFile("C:/Users/Andreas/source/repos/conquer/Media/mountain.png");
break;
case type::water:
tx.loadFromFile("C:/Users/Andreas/source/repos/conquer/Media/water.png");
break;
}
}
sf::Texture ret_texture() {
return tx;
}
~tile_texture_holder() {
std::cout << "///////////////////////HOLDER DELETED!!!/////////////////////" << std::endl;
}
};
И я пытался загрузить спрайт им по-разному ...
Например:
tile_texture_holder t(type::desert);
sf::Sprite s;
s.setTexture(t.ret_texture());
(в той же функции, где я рисую спрайт)
Я всегда получаю белую коробку. И я действительно не понимаю, почему текстурный держатель удаляется.
Кстати, тип enum.
Надеюсь, кто-нибудь поможет мне решить мою проблему!