(09-11-2012, 04:16 PM)Argorate a écrit : Maintenant, autre problème: comment faire pour ne pas autoriser le déplacement en diagonale?
C'est à dire si je laisse appuyez LEFT (ça va a gauche) et ensuite j'appuis UP sans relâcher LEFT(ça doit allez uniquement haut et pas haut + gauche).
Cependant on ne peux pas juste détruire le timer LEFT! Il faut que lorsqu'on relâche UP, (et qu'on maintient toujours LEFT), cela se redéplacer à gauche (sans que j'ai arrêter d'appuyé sur LEFT, donc avec le timer initial)...
Une idée?
tu fais une pile en plus des 4 statuts
le dernier élément de la pile est la direction a condition que le statut de la direction soit "appuyé"
a chaque nouvelle touche appuyée tu ajoutes à la pile, en plus de son statut.
a chaque relache d'une touche, tu supprimes du statut, et tu controles la pile
le premier appui de left ==> left = true, pile = left
le dernier élément de la pile est left, donc tu vas a gauche
tu laisses appuyé left
le dernier élément de la pile est left, donc tu vas a gauche
deuxième appui sur up ==> left = true, up = true, pile = left + up
le dernier élément de la pile est up donc tu vas en haut
tu laisses appuyé left + up
le dernier élément de la pile est up donc tu vas en haut
tu laches up -> left = true, up = false, -> tu supprimes up de la pile -> pile =left
le dernier élément de la pile est left, donc tu vas a gauche
troisième appui sur up ==> left = true, up = true, pile = left + up
le dernier élément de la pile est up donc tu vas en haut
tu relâches left -> up = true, left = false -> tu supprimes left de la pile -> pile = up
le dernier élément de la pile est up donc tu vas en haut
tu laisses appuyé up
le dernier élément de la pile est up donc tu vas en haut
tu relâches up -> up = false -> tu supprimes up de la pile -> pile = vide
pas d'éléments dans la pile, la boucle s'arrête
enfin j'ai pas testé mais je ferais ainsi