Bonjour,
j'ai programmé un tetris sous turbo pascal 7, il fonctionne bien, il est en mode graphique, mais il n'est pas très jouable, j'ai un problème avec la gestion des touches.
Tout le jeu est dans une boucle while, et je vérifie une seule fois dans la boucle s'il y a appui sur une touche :
j'utilise le pavé numérique car j'ai un peu de mal avec les flèches (touches étendues...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 (*Gestion des touches*) If keypressed then begin tch:=readkey; If ord(tch)=52 then (*appui sur flèche gauche*) begin (*on fait aller la bloc vers la gauche*) end; If ord(tch)=54 then (*appui sur flèche droite*) begin (*on fait aller le bloc vers la droite*) end; If ord(tch)=53 then (*appui sur 5, rotation du bloc*) begin (*on fait tourner le bloc*) end; If ord(tch)=50 then (*appui sur flèche bas*) begin (*on fait chuter le bloc plus vite*) end; end; VideTamponClavier; (*dans l'unité disponible sur developpez.com*)
J'utilise la procédure VideTamponClavier de l'unité clavier.tpu, car sinon il y a un problème (par exemple le bloc est contre le bord droit et on reste appuyé sur la flèche droite, lorsque le nouveau bloc arrive, il va a droite, désolé j'essaye d'être clair mais ce n'est pas évident)
Une fois par boucle, j'incrémente les ordonnées du bloc pour le faire descendre. Comme je vérifie l'appui sur les touches une seule fois dans la boucle, le bloc ne peut faire qu'une seule chose à la fois , exemple :
premier passage dans la boucle:
va vers la droite
descend
deuxième passage dans la boucle :
va vers la droite
descend
troisième :
tourne
descend
Ce n'est donc pas très jouable, on devrait pouvoir par exemple, le faire tourner 5-6 fois avant qu'il descende d'un cran, ou le faire aller tout à droite en un temps très court.
Je sais que c'est parce que je ne vérifie qu'une seule fois si il y a un appui sur une touche dans la boucle , j'ai essayé de vérifier plusieurs fois dans la boucle les touches appuyées et d'afficher mon tableau après, ça a provoqué des bugs et je doute que ce soit la bonne solution.
Dans les autres tetris que j'ai regardé on peut faire ce que je viens de dire (le faire tourner 5-6 fois avant qu'il descende d'un cran, ou le faire aller tout à droite en un temps très court) mais comment font-ils ?? quelle est leur formule magique![]()
![]()
: Vérifient-il 10000 fois l'appui sur les touches dans la boucle ?? (ce qui m'étonnerait)
Voilà, merci d'avance
a+
Partager