bonjour,
etant en train de developper un pacman en java, je me dois de creer des fantomes.Ces fantomes utilisent trois thread chacun.
- Un qui recherche le pacman
- Un qui le fait fuir devant le pacman
- Un dernier qui va lui faire rentrer a la maison des fantomes si jamais il se fait bouffer.
Le tout geré par un mecanisme de verrou.
J'ai donc une classe gestionfantome qui derive de thread dans laquelle les fonctions de deplacement des fantomes sont stockées.
De cette classe 3 classes dérivent, a savoir les classes de gestion des etats du fantomes (expliqué o dessus).
Lorsque le pacman mange une superpastille, le thread qui a la main doit alors changer. Pour cela, j'ai une fonction touchelistener qui marche bien.
Mon Probleme :
Je n'arrive pa a reveiller le thread contenu dans la classe de fuite du fantome a partir de celui contenu dans la classe qui traque le pacman. Pour la comprehension quelque ligne de code :
Voici dans ma classe de traque la fonction qui appelle le fonction qui devrait faire reveiller le thread
setDroit permet de passer le verrou au thread de fuite
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public synchronized void testInvincibilitePacman() { if (cadre.lab.pacman.isInvincible()) { f.setDroit(1); cadre.lab.vulFantome2.releve(); //System.out.println("on reveille le thread de vulnerabilité"); } }
Voici dans ma classe de fuite la fonction qui devrait faire reveiller le thread
Voila mon probleme, que celui qui m'aide soit beni des dieux lol
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public synchronized void releve() { notifyAll(); }
Si vous avez des questions n'hesitez pas...Je ne sais plus koi faire...
merci d'avance
Partager