raffika
Messages postés269Date d'inscriptiondimanche 31 mai 2009StatutMembreDernière intervention12 mars 2011
-
9 janv. 2010 à 12:41
raffika
Messages postés269Date d'inscriptiondimanche 31 mai 2009StatutMembreDernière intervention12 mars 2011
-
12 janv. 2010 à 17:54
Bonjour,
je suis en train de créer un jeu de serpent avec une picturebox, le serpent est animé il se déplace carré par carré (j'ai fait une fonction sub qui dessine un carré avec deux arguments en faisant 10 lignes), je déplace le serpent avec quatres touches qui changent la direction du serpent mais j'ai l impression que ça bug un peu par rapports aux mouvements qui ne sont pas très jouables, alors au début j'ai essayé diverses techniques puis j'ai trouvé une qui arrange pas mal de choses, c'est à dire relancer le timer :
Timer1.start()
alors que le timer est déja activé, donc je relance le timer comme ceci à chaque changement de direction établi par une touche frappée dans un évenement KeyDown (d'un bouton)...
Mais voilà quand je veux changer de direction rapidement, c'est à dire en pressant deux touches dans une intervale plus courte que la vitesse du timer, la premiere touche est prise en compte mais pas l'autre...
Je voudrais donc que le serpent soit plus 'facile' à diriger... Si vous connaissez une méthode merci de me répondre...
raffika
Messages postés269Date d'inscriptiondimanche 31 mai 2009StatutMembreDernière intervention12 mars 2011 12 janv. 2010 à 17:54
Salut Renfield,
je vais apporter quelques précisions, l'evenement keydown est
pris en compte dans un bouton, donc je pense que le timer
est actif en meme temps que l evenement keydown,
dans cet envenement keydown, je regarde la touche frappée,
si c'est haut je met la variable d en 8
si c'est bas je met la variable d en 2
si c'est gauche je met la variable d en 4
si c'est droite je met la variable d en 6
en verifiant bien évidemment la direction précendente pour savoir si la
nouvelle direction est valable (si c est haut alors que le serpent vas en bas
la touche n est pas prise en compte)
Dans le timer, à chaque tick, je regarde la variable d
pour prendre en compte la direction et j'ajoute ansi un
carré, en haut en bas à gauche ou a droite de la tete du serpent...
Donc je ne redessine pas le serpent à chaque fois je me contente de
rajouter un carré en regardant la direction d donc en haut a gauche a droite ou en bas...