-
En vrai, ma boucle c'est juste
Mais là je vais changer un peu pour mettre un affichage de 50fps en espérant que ça ne fera pas faire de saut à mes particules.
Je me demande si je ne vais pas laisser une trainée derrière la particule.
-
Le problème ici c'est que tu réalises des calculs dans le thread destiné au dessin (aka l'EDT). de fait ça bloque ce thread de façon momentanée, et de fait tu n'as aucune façon d'être sur que le composant va se redessiner au moment voulu, vu que tu bloques le thread destiné à ce fait par tes calculs. En effet l'appel à repaint ne déclenche pas directement le dessin du composant. Il ne fait juste que mettre en file une demande de rafraichissement du composant dans l'EventQueue. Le rôle de l'EDT étant de consommer l'EventQueue dès qu'il est disponible, or avec ta boucle tu ne lui rend pas vraiment la main. Donc il galère un peu à dessiner ton composant.
Cf le tutoriel suivant: http://gfx.developpez.com/tutoriel/j...ing-threading/
-
Oui je comprend très bien. En fait j'étais moi-même arrivé à une conclusion équivalente sans réussir à mettre des mots dessus. Du coup faire du 50fps ça devrait bien résoudre mon problème, en plus de ne dessiner que la zone qui change. Et évidement je vais faire mon calcul de position des particules dans des threads séparés.