Forum de la communauté SFML

Aide => Général => Discussion démarrée par: ZeonSoldier le Mai 05, 2019, 04:14:30 pm

Titre: Boucle while et SFML
Posté par: ZeonSoldier le Mai 05, 2019, 04:14:30 pm
Bonjour à tous, bon dimanche :D

J'ai une question qui va sembler bête pour certains (beaucoup) d'entre vous mais pour rappel je me suis mis au c++ et à la sfml en auto-formation en dehors du travail j'acquiers certains réflexes qu'avec le temps  ;D

Je me demandais comment utiliser un while ou une fonction récursive avec la SFML, j'ai un programme qui ne réponds pas à cause d'un algorithme flood fill, ça doit être dû au fait que le programme se réactualise constamment dans le while(window.isOpen) ce qui pose problème avec la boucle...

Pourriez vous m'éclaircir le problème et me donner des pistes pour m'aider à avancer ?
Titre: Re: Boucle while et SFML
Posté par: Laurent le Mai 05, 2019, 08:27:34 pm
Deux solutions lorsque tu as une tâche longue à exécuter tout en continuant à rafraîchir la fenêtre :

1. Tu fais tourner ta tâche dans un thread ; difficultés à prévoir (surtout pour quelqu'un qui débute) si tu as des données à échanger entre les threads, ce qui sera normalement le cas.

2. Tu exécutes ta tâche par petits incréments de quelques millisecondes au lieu de tout faire d'un coup. Comme ça elle ne bloque jamais et tu peux continuer à faire le reste (gérer la fenêtre et le rendu) en continu. La difficulté ici c'est qu'il faut bien entendu que la tâche en question s'y prête bien.
Titre: Re: Boucle while et SFML
Posté par: ZeonSoldier le Mai 06, 2019, 08:36:17 pm
Je comptais tester la solution numéro 2 avant de poster, ça me rassure :D

Encore merci pour la réponse super rapide, j'ai plus qu'à m'accrocher et aller regarder du côté des threads :)