Je crois que je programme trop mal les comptes à rebours en fait, j'ai besoin de votre aide svp
Par exemple : je veux afficher un message disons 5 secondes au dessus d'un joueur quand il appuie sur une touche.
Ok, je sais le faire parce que c'est très simple, mais comment le faire proprement ?
Mon joueur a entre autre une methode update (logique) et disons une methode render, qui renvoit son sprite.
Donc si je veux afficher un message, ce que je fais :
j'ai un boolean, quand il est à true j'affiche le message. (methode render)
Au moment où le joueur presse la touche, je passe le boolean à true. (methode update)
Puis, 5 secondes plus tard, je le passe à false.
Donc là ce que je fais en gros dans le methode update, c'est que j'ai un int que j'incrémente (en tenant compte du "décalage" delta) , et lorsque que les 5 secondes sont passées je passe le boolean à false, ce qui enlève le message.
Donc ça marche, mais imaginons maintenant que dans mon jeu y'a plein de phases comme ça où des trucs se déclenchent un certains temps.
à chaque fois je dois faire tout ce bazar d'utiliser des booleans et des timers à la main ? ça rend le code illisible à la longue.
Alors ce que j'ai fait c'est que j'ai une classe genre "nouveauMessage" qui a sa propre methode update et tout, mais ça reste moche je trouve, je suis persuadé qu'il existe des moyens plus simples.
Je peux pas simplement faire un Thread.sleep() parce que ça bloque toute la methode render..
Vous faîtes comment vous
Vous utilisez des threads / forks ?
J'arrive à programmer à peu près ce que je veux en faisant plein de classes mais je suis persuadé qu'il y a plus simple, mais j'arrive à trouver la solution la plus propre / optimale. 