Bonjour,
J'ai dans mon application un petit tank qui possède un canon. Je voudrais faire en sorte que quand j'appuie sur la barre d'espace le canon tire un boulet. Chose que j'ai réussi à faire, j'ai mis dans la méthode update un test qui vérifie si la touche espace est "down". Si le test est vrai, un objet de type classe "Boulet" est crée, ajouté à une liste et est mis à jours (update,draw,..) quand on lui demande. Mon problème se trouve au moment où l'on appuie sur la barre d'espace. Quand je clique dessus, même de manière très rapide, il y a au moins 3 boulet qui parte d'un coup, la boucle passe très rapidement en moins d'une seconde. Or il faudrait pouvoir tirer un boulet toutes les 1 seconde par exemple.
J'avait pensé, pour palier au problème, garder en mémoire le temps qui s'écoule entre chaque frame, par exemple à chaque fois que l'on passe dans la boucle j'additionne le temps écoulé en milliseconde, et tant que ce temps ne dépasse pas les 1 secondes je n'autorise pas à tirer d'autre boulet. Et quand les 1 secondes sont passé on autorise d'envoyer un boulet, et je redémarre ce compteur à zéro.
Est-ce une solution correcte? Sinon quels sont les techniques qui sont dans la plupart du temps employer pour résoudre un tel problème?
Je vous remercie d'avance pour votre aide.
Partager