thomas le 13/12/2013 à 21:47
Bonsoir, je code actuellement un PONG et le problème auquel je me heurte est le suivant: je dois gérer les getkey pour déplacer la raquette avec des boucles while et en meme temps faire déplacer la balle en permanence ce qui donne quelque chose comme ça.
Code
Texte en sous-format code
:While 1
:getkey->K
output(X,Y,"°"
While K=0
getkey->K
End
If K=26
Then
L+1->L
End
...
End
jusque là tout va bien le seul problème c'est que la balle ne bouge pas il faut appuyer sur une touche pour que la balle bouge
ce qui rend le jeu impossible.
quelqu'un a t il déjà eu ce soucis et a une éventuelle solution?
linkakro le 13/12/2013 à 23:03
Oui, d'autant que c'est un classique indémodable.
Tu dois sauvegarder la direction dans d'autres variables que celle de la saisie, les mettre à jour avec K et les utiliser à chaque tour de boucle pour effectuer le déplacement.
Tu n'as pas besoin de Then et End quand il y a une seule action.
Le plus simple pour y parvenir est de stocker des variables de Pas +1/-1 qui seront ajoûtées aux coordonnées régulièrement.
Et utiliser K lorsqu'il est non-nul pour modifier les Pas.
Code
5->X
5->Y
0->A
0->B
While 1
getkey->K
output(Y,X,"°
// actualisation des pas
If K=26
1->A
If K=24
-1->A
If K=25
-1->B
If K=34
1->B
// déplacement, et sécurité pour ne pas sortir de l'écran
// test de sécurité : If X+A<16 and X+A>1
X+A->X
// test de sécurité : If Y+B<8 and Y+B>1
Y+B->Y
End
On peut aussi stocker K dans une variable et déterminer les pas à chaque fois comme si c'était K.
Code
5->X
5->Y
0->M
While 1
getkey->K
output(Y,X,"°
// actualisation de la direction
If K // revient à dire K non nul
K->M
// déplacement, et sécurité pour ne pas sortir de l'écran
If M=24 // et en plus: and X+A>1
X-1->X
If M=26 // et en plus: and X+1<16
X+1->X
If M=25 // et en plus: and Y-1>1
Y-1->Y
If M=34 // et en plus: and Y+1<8
Y+1->Y
End
Et il existe diverses manières d'optimiser. Je peux en indiquer certaines si on me demande, je ne veux pas embrouiller pour rien.
Toutes les choses basiques que j'utilise, mentionne, et tout simplement ce que tu veux faire ici, est traité dans des tutoriels. En particulier celui de Mdr1 sur OpenClassrooms.
https://web.archive.org/web/20[...]mer-en-ti-basic
Et puis la section article du forum contient des choses en plus.
Je rappelle que le nouveau forum Tout82.forumactif.org est disponible et contient quelques ressources plus à jour que le forum original ici présent.