Bonjour,
J'ai commencé et bien avancé la création d'un pacman.
J'utilise sf::Text afin d'afficher le score.
Pour cela je converti un compteur entier en string, puis je place au fur et à mesure dans un tableau de sprite de 309 cases (puisqu'il y a un maximum de 309 points à atteindre dans le niveau de mon pacman), les sprite contenant le score à afficher.
La mise à jour du score ne pose aucun problème d'affichage (le score s'affiche correctement), mais les pacman/fantômes ne sont plus fluides du tout.
En bref :
Si je met cette ligne :
vm_tableauScore[vm_compteur] = vm_spriteScore;
Les déplacements ne sont plus fluides.
Si je l'enlève, les déplacements sont à nouveau fluides.
Auriez-vous une idée ?
Merci d'avance.
vm_compteur++;
vm_textureScore.create(100, 60); //vm_textureScore est de type sf::RenderTexture
vm_textureScore.clear(sf::Color::Black);
vm_texteScore.setFont(vm_font); //vm_font correspond à la police utilise pour le texte
vm_texteScore.setColor(sf::Color::White); //couleur de la police...
std::string str; // Conversion du compteur
std::ostringstream oss;
oss << vm_compteur;
vm_texteScore.setString(oss.str());
vm_textureScore.draw(vm_texteScore); //Texte à afficher.
vm_textureScore.display();
sf::Sprite spriteScore(vm_textureScore.getTexture());
spriteScore.setPosition(800,20);
vm_tableauScore[vm_compteur] = spriteScore;
vm_tableauMapEntier[y][x] = 15; //me permet de savoir si la case à déjà été visité
vm_spriteTileSet.setTextureRect(sf::IntRect(15*tailleX, 0, tailleX, tailleY));
vm_spriteTileSet.setPosition(x*tailleX, y*tailleY);
vm_tableauMapSprite[y][x] = vm_spriteTileSet;
app.draw(vm_tableauMapSprite[y][x]); // mise à jour map
app.draw(pacman.fm_getPersoSprite()); // mise à jour pacman
app.draw(vm_tableauScore[vm_compteur]); //mise à jour score
EDIT : Ce code est dans une condition et correspond aux instructions me permettant d'afficher le score.