cs_Darksheep
Messages postés69Date d'inscriptionsamedi 4 novembre 2000StatutMembreDernière intervention15 septembre 2009
-
11 févr. 2006 à 20:56
dletozeun
Messages postés546Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention 9 janvier 2008
-
12 févr. 2006 à 18:03
Bonjour, je commence à programmer avec allegro ;) mais voila je butte :
des que j'utilise un timer je n'arrive plus à quitter mon jeu !j'ai
beau défoncer la touche ESC ça marche pas!!! une portion de code :
xboxut
Messages postés172Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention27 novembre 20091 12 févr. 2006 à 14:36
normal que tu puisse pas quitter -> tu rentre dans ton
while(speed_counter>0)
{
ton timer incrementre la variable speed_counter; manque de chance le blit prend pas mal de temp et l incrementation de ta varaiable speed_counter se fait plus rapidement que la decrémentation(speed_counter--;)
ce qui a pour effet d'avoir toujours speedcounter >0 . tu peut donc jamais sortir de ton while. met un timer de 100-200 msec ca devrait marcher .
enfin pour faire tourner ton prog a la meme vitesse , on utilise pas de while comme ca mais plutot des test if :) .
il y a une } en trop apres END_OF_MAIN(); aussi
aller @ ++
dletozeun
Messages postés546Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention 9 janvier 20081 12 févr. 2006 à 18:02
de toute facon c pas bon du tout cette methode parce que ca va dependre de la config...
Il ne dois y avoir que la fct increment_speed_counter() qui dois toucher a la variable speed_counter
Et puis a quoi ca te sert de faire 50000 blit a la seconde alors que dans ton while le buffer ne va pas chnger d'un poil...?
En fait il faut que tu fasse une boucle ( donc un while) pour la partie calcul de ton programme.
Donc au debut de la boucle tu fixe une autre variable (int calcul par
exemple)comme etant egale a celle du timer + n ( un nombre entier, par
exemple 200) et dans ton while tu mets while(calcul>speed_count) {
tu fais les calculs necessaires ...traimtement de l'image...de
l'interface, claviert etc...}
voila et des que le timer a depassé calcul , tu dessine ce que tu as a dessiner.
Et ensuite tu repars a zero en remettant calcul egal a
speed_counter+n...et ainsi de suite ( donc t'a un 2eme while qui
engloble tout ca, du genre while ( !touche_esc_appuyé)