Bonjours tous le monde,
c'est encore moi et je viens avec un autre problème, j'aimerais savoir si il est possible de vérifier si une images a était appliqué a une texture pour une raison simple : pour un système d'animation j'ai ma classe "canon" qui dispose d'un vector de sprite attribué depuis une fonction void chargementImages(string chemin,vector<Sprite> &listeSprite,Image &imageSprite,int x,int y,int &nbImage,bool &reverse)
{
int largeurImage = 0, hauteurImage = 0;
chemin += "info.txt";
ifstream fichierInfo(chemin.c_str());
fichierInfo >> nbImage; // nombre d'images que contiens l'animation
fichierInfo >> Reverse; // si l'animation dois être "rembobinez"
fichierInfo >> largeurImage;
fichierInfo >> hauteurImage;
for(int i=0;i<nbImage;i++)
{
Sprite sprite;
sprite.SetImage(imageSprite);
sprite.SetSubRect(IntRect(i*largeurImage,hauteurImage,(i*largeurImage)+largeurImage,hauteurImage)); // découpe de l'image
sprite.SetPosition(x,y); // placement du sprite
listeSprite.push_back(sprite); //ajout du sprite dans le vector de sprite
}
}
puis j'appelle une autre fonction pour afficher mon animation :
bool Canon::Tir(RenderWindow &app)
{
string chemin = "images/canon/animationTir/info.txt";
if(m_nbImageActuel != m_nbImageTir) // si l'image actuel n'est pas egale au nombre d'image total de l'animation
{
if(animation(chemin,m_listeSpriteTir,m_nbImageActuel,m_reverse,app)) // si la fonction renvoi "true"
m_nbImageActuel ++; // l'image actuel augmente de 1
return true; // renvoi "true" jusqu'au programme pour dire que l'animation est encore en cours
}
else
{
return false; // renvoi "false" au programme pour dire que l'animation est fini
}
}
bool animation(string chemin,vector<Sprite> &listeSprite,int &nbImage,bool reverse,RenderWindow &app)
{
float tempsPasse = temps.GetElapsedTime();
if(tempsPasse > 0.005)
{
app.Draw(listeSprite[nbImage]);
temps.Reset();
return true; // signale que la frame a était affiché et qu'il peut envoyer la suivante
}
else
return false;
}
ce code peut être simplifié et je m'y pencherais quand il fonctionnera, je pense que le problème viens du fait que les sprites n'ont pas d'image alloué (quand j'essaye d'afficher directement une des frame de l'animation a la place de l'affichage normal du canon (qui fonctionne) et bien rien ne s'affiche)je vous remercie beaucoup encore pour votre aide ^^
Edit : c'est réglé j'ai mis un pointeur pour le vector et j'avais découpé l'image en y a (170,170) donc l'image n’apparaissais pas ^^