Bonjour,
Pour une application graphique j'ai eu besoin d'utiliser SFML pour la première fois et j'ai été confronté à un problème, lorsque je charge une texture et que je l'ajoute à un sprite, au moment de l’affichage, le sprite mesure bien la bonne taille mais il est blanc.
Je me suis renseigné sur internet et j'ai vu que beaucoup de personnes avaient ce problème, j'ai trouvé la solution d'utiliser un pointeur pour la texture, mais maintenant je suis embêté avec ce pointeur. Par la suite j'utilise un tableau de Piece et à un moment je dois échanger deux pièces du tableau et à cause du pointeur les sprites ne s'echange pas correctement.
Donc je souhaite m’éviter de traîner des pointeurs en attribut de classe, je voulais savoir s'il existait une autre solution, j'ai regardé sur beaucoup de forum mais je n'ai pas trouvé de réponse à mon problème.
Je ne comprends pas pourquoi la texture devient null alors qu'elle est un attribut de Piece, pourquoi est elle détruite alors que la pièce existe encore ?
Voici un code très simplifié pour illustrer mes propos.
class Piece
{
private:
int m_forme;
sf::Texture m_texture;
sf::Sprite m_sprite;
public:
Piece(int forme);
};
Piece::Piece(int forme){
std::string cheminPiece;
switch (forme){
case 0: {
cheminPiece = "Images/image1.png";
break;
}
case 1: {
cheminPiece = "Images/image2.png";
break;
}
}
m_texture.loadFromFile(cheminPiece);
m_sprite.setTexture(m_texture);
}
merci