marques83
Messages postés3Date d'inscriptionmercredi 29 novembre 2006StatutMembreDernière intervention29 novembre 2006
-
29 nov. 2006 à 22:09
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
29 nov. 2006 à 23:53
Bonsoir,
j'ai écrit un jeu "The game of Life"... dans ce jeux j'ai besoin de faire un refresh, ou mieu
dit en langue de programmation un repaint() dans un boucle...ou même il pourrai être en dehors si j'appel cette fonction récursivement comme je l'ai fait...J'ai même fait une pause de 1 sec. pour que la modification de l'image soi visible...Le problème est que le rapaint n'est exécuté qu'à la fin de la boucle...comment puis-je faire pour avoir un refresh après chaque itération?
Merci pour toute aide!!
P.S. voici la partie du code:
pause(numberauto); // cette ligne est dans une autre classe...
// number auto est le nombre d'itérations
public void pause(int N){
int i;
if (N > 0){
dessin.m.iteration();
dessin.m.print();
dessin.repaint();
try { Thread.sleep(1000);
dessin.repaint();
} catch(InterruptedException e2) { dessin.repaint();
e2.printStackTrace();
}
if (numberauto>0){
numberauto--;
pause(numberauto);
}
else{}
}
}
P.S.S. Malgré tout ces repaint() le repaint n'est exécuté qu'à la fin de toutes ces itérations...
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 29 nov. 2006 à 23:03
Salut:
void gameLoop () {
while (true) {
// Mettre à jour ta scène
// dessiner la scène
repaint ();
try {
Thread.sleep (1000);
}
catch (InterruptedException e) {
}
}
}
Je te conseille d'abondonner cette technique archaique d'effacer l'écran puis d'afficher et ainsi de suite.
Je te conseille d'utiliser la technique de double buffering elle est déja supportée par Java.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 29 nov. 2006 à 23:07
Salut:
Dernier mot le double buffering te permet une meilleure qualité de graphisme (clair, fluide, ...) c'est d'ailleurs la technique de Jeu 3D
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 29 nov. 2006 à 23:34
Salut,
déporte ton traitement
dans un thread par ce que la il y a des chances que tu sois dans le
thread main et donc tant que tu n'as pas rendu la main les repaints
ne se feront pas(c'est le thread main qui fais affiche une fenetre et
execute les repaint dedans)....
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
WORA
Vous n’avez pas trouvé la réponse que vous recherchez ?
marques83
Messages postés3Date d'inscriptionmercredi 29 novembre 2006StatutMembreDernière intervention29 novembre 2006 29 nov. 2006 à 23:40
merci!!!
exactement....tant que j'ai pas rendu la main ca ne fonctionne pas...
comment je peux le déporter dans un thread? excusez-moi...mais je suis encore un peu débutant en java
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 29 nov. 2006 à 23:53
Salut,
ba ne sachant pas comment est fait ton code et de quel sont tes variable je ne peux te donner un exemple mais voici un tutos sur les thread en java : http://alwin.developpez.com/tutorial/JavaThread/
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."