timer opérationnel + peut être mis en pause
This commit is contained in:
parent
4e1a6be5b3
commit
6b9c846396
92
src/timer.c
92
src/timer.c
@ -1,27 +1,95 @@
|
|||||||
#include<stdio.h>
|
#include<stdio.h>
|
||||||
#include<stdlib.h>
|
#include<stdlib.h>
|
||||||
#include<graph.h>
|
#include<graph.h>
|
||||||
|
#define cycle 1000000L
|
||||||
|
|
||||||
void afficher_timer(void){
|
unsigned long int attendre(void){
|
||||||
EcrireTexte(0,0,coucou,2);
|
int x=1;
|
||||||
|
unsigned long int temps_pause;
|
||||||
|
unsigned long int t1=Microsecondes();
|
||||||
|
while(x==1){
|
||||||
|
if(Touche()==XK_space){
|
||||||
|
x=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
temps_pause=Microsecondes()-t1;
|
||||||
|
return temps_pause;
|
||||||
|
}
|
||||||
|
|
||||||
|
int afficher_seconde(int sec){
|
||||||
|
char timer[50];
|
||||||
|
int x = 120 ,y = 100;
|
||||||
|
if(sec<=9){
|
||||||
|
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
|
||||||
|
RemplirRectangle(x-3,y-25,40,30);
|
||||||
|
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
|
||||||
|
EcrireTexte(x,y,"0",2);
|
||||||
|
snprintf(timer,sizeof(timer),"%d",sec);
|
||||||
|
EcrireTexte(x+15,y,timer,2);
|
||||||
|
} else {
|
||||||
|
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
|
||||||
|
RemplirRectangle(x-3,y-25,40,25);
|
||||||
|
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
|
||||||
|
snprintf(timer,sizeof(timer),"%d",sec);
|
||||||
|
EcrireTexte(x,y,timer,2);
|
||||||
|
}
|
||||||
|
return sec;
|
||||||
|
}
|
||||||
|
|
||||||
|
int afficher_minute(int min){
|
||||||
|
char timer[50];
|
||||||
|
int x = 80 ,y = 100;
|
||||||
|
if(min<=9){
|
||||||
|
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
|
||||||
|
RemplirRectangle(x-3,y-25,40,30);
|
||||||
|
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
|
||||||
|
EcrireTexte(x,y,"0",2);
|
||||||
|
snprintf(timer,sizeof(timer),"%d",min);
|
||||||
|
EcrireTexte(110,100,":",2);
|
||||||
|
EcrireTexte(x+15,y,timer,2);
|
||||||
|
} else {
|
||||||
|
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
|
||||||
|
RemplirRectangle(x-3,y-25,40,25);
|
||||||
|
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
|
||||||
|
snprintf(timer,sizeof(timer),"%d",min);
|
||||||
|
EcrireTexte(110,100,":",2);
|
||||||
|
EcrireTexte(x,y,timer,2);
|
||||||
|
}
|
||||||
|
return min;
|
||||||
}
|
}
|
||||||
|
|
||||||
void creer_timer(void){
|
void creer_timer(void){
|
||||||
int sec = 0,mil_sec=0,min=0;
|
int sec = 0,min=0;
|
||||||
unsigned long temps = 0,t1=0;
|
unsigned long int temps = 0,seconde,pause=0;
|
||||||
t1=Microsecondes();
|
seconde=Microsecondes()+cycle;
|
||||||
while(min<=12){
|
afficher_seconde(sec);
|
||||||
printf("[%0.2d:%0.2d]\n",min,sec);
|
afficher_minute(min);
|
||||||
temps=Microsecondes()-t1;
|
EcrireTexte(110,100,":",2);
|
||||||
min=(temps/60000000)%60;
|
while(1){
|
||||||
temps=temps%60000000;
|
if(Microsecondes()>seconde){
|
||||||
sec=(temps/1000000)%60;
|
sec++;
|
||||||
EcrireTexte();
|
printf("%d\n",sec);
|
||||||
|
afficher_seconde(sec);
|
||||||
|
seconde=Microsecondes()+cycle;
|
||||||
|
if(sec==60){
|
||||||
|
sec=0;
|
||||||
|
min++;
|
||||||
|
afficher_seconde(sec);
|
||||||
|
afficher_minute(min);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if(ToucheEnAttente()==1){
|
||||||
|
if(Touche()==XK_space){
|
||||||
|
pause=attendre();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void){
|
int main(void){
|
||||||
InitialiserGraphique();
|
InitialiserGraphique();
|
||||||
|
CreerFenetre(1000,0,1000,1000);
|
||||||
creer_timer();
|
creer_timer();
|
||||||
FermerGraphique();
|
FermerGraphique();
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
|
Loading…
Reference in New Issue
Block a user