2011-05-02 2 views
0

Ma fonction de mise à jour est appelée comme 60 fois par seconde, et le joueur est censé se déplacer par pas de 32 pixels sur ma grille, donc le joueur bouge très rapidement, je veux recevoir seulement 10 entrées clés, et j'ai toujours mon jeu à 60fps.Comment ralentir l'entrée de l'utilisateur?

Répondre

3

Vous pouvez

  • require user faire clics plein de clavier avec libérer chaque
  • clés ont la position de l'utilisateur d'être tri du flottant au lieu d'int où une partie entière représente les étapes de la grille. Tandis que l'utilisateur essaye de se déplacer dans une direction particulière, il se déplace avec une vitesse définie (2 par seconde) et quand la position flottante devient le prochain joueur de cellule saute
  • vous pouvez demander au joueur de rester dans une cellule particulière pendant un certain temps (comme. 5 secondes) - définissez ainsi la vitesse à laquelle elle se déplace.
+0

Quelle est une bonne méthode pour garder le joueur dans une cellule pendant 0,5 secondes? J'ai regardé les membres de gameTime et je ne vois pas d'utilisation là-bas – Kaije

+0

Je ne pense pas qu'il y ait des membres spécifiques pour cela. J'ajouterais quelque chose comme "LastMovedTime" à un objet joueur et m'assurerais de ne pas déplacer le joueur jusqu'à LastMovedTime + CellTime

+0

gee .. quelle bonne idée. Pourquoi n'y ai-je pas pensé? –

0

Le moyen le plus simple est de garder l'heure active lorsqu'on appuie sur une touche. Il n'y a aucun moyen de ralentir la vitesse du système d'entrée, vous devez donc le simuler vous-même. Voici un pseudo-code pour vous aider à démarrer. Le principal avantage de cette approche est qu'elle sera toujours basée sur le temps par opposition au framerate de votre jeu. Donc, si vous perdez des images pour une raison quelconque, votre personnage bougera toujours à la même vitesse.