Vous pouvez vouloir un type simple de machine d'état. Lorsque la touche est enfoncée (voir sf::Input's IsKeyDown method), placez le caractère à l'état "animé". Lorsque la touche n'est pas enfoncée, placez le caractère dans l'état "non animé". Bien sûr, vous pouvez toujours sauter cet "état" et faire ce que je mentionne ci-dessous (en fonction de ce que vous faites exactement). Puis, si le personnage est dans l'état "animé", obtenez l'image suivante (voir le paragraphe suivant pour plus de détails). Par exemple, si vous avez vos images stockées dans un tableau simple à 4 éléments, l'image suivante sera à (currentIndex + 1) % ARRAY_SIZE
. Selon ce que vous faites, vous pouvez stocker vos images dans une structure de données plus sophistiquée. Si le personnage n'est pas dans l'état "animé", alors vous n'effectuerez aucune mise à jour ici. Si vos «4 images» se trouvent dans le même fichier image, vous pouvez utiliser la méthode SetSubRect de sf :: Sprite pour changer la partie de l'image affichée. Si vous avez réellement 4 images différentes, alors vous devrez probablement utiliser la méthode SetImage de sf :: Sprite pour éteindre les images.
Comment voulez-vous appliquer un framerate pour que l'animation ne se produise pas trop rapidement? – andrewtweber