Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Boucle while et SFML  (Lu 1949 fois)

0 Membres et 1 Invité sur ce sujet

ZeonSoldier

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Boucle while et SFML
« 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 ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Boucle while et SFML
« Réponse #1 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.
Laurent Gomila - SFML developer

ZeonSoldier

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re: Boucle while et SFML
« Réponse #2 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 :)