(l'affichage se trouve a la fin, avant le blittage)
- Code: Tout sélectionner
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <SDL/SDL_ttf.h>
int main(int argc, char *argv[])
{
SDL_Init(SDL_INIT_VIDEO| SDL_INIT_TIMER);
TTF_Init();
long seconde=0, minute=0, heure=0, jour=1, mois=1, an=2007, jourAn=1, semaine=0, jourSemaine;
int continuer = 1;
SDL_Event event;
SDL_Surface *ecran = NULL, *texte1=NULL, *texte2=NULL, *texte3=NULL;
TTF_Font *police = NULL;
SDL_Color blanc = {255, 255, 255};
char houre[100]={0}, date[100]={0};
char nomMois[100]={0}, nomJour[100]={0};
police = TTF_OpenFont("3_traits.ttf", 15);
ecran = SDL_SetVideoMode(320, 240, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_WM_SetCaption("Horloge", NULL);
SDL_Rect positionTexte1;
SDL_Rect positionTexte2;
SDL_Rect positionTexte3;
while (continuer)
{
SDL_PollEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
break;
}
seconde++;
if (seconde>=60)
{
seconde=0;
minute++;
}
if (minute>=60)
{
minute=0;
heure++;
}
if (heure>=24)
{
heure=0;
jour++;
jourAn++;
}
if (mois==1 || mois==3 || mois==5 || mois==7 || mois==8 || mois==10 || mois==12)
{
if (jour>=31)
{
jour=1;
mois++;
}
}
else if (mois==4 || mois==6 || mois==9 || mois==11)
{
if (jour>=30)
{
jour=1;
mois++;
}
}
else if(mois==2)
{
if (an!=2008 || an!=2012 || an!=2016)
{
if(jour>=29)
{
jour=1;
mois++;
}
}
else
{
if(jour>=28)
{
jour=1;
mois++;
}
}
}
if (mois>=12)
{
mois=1;
jourAn=1;
an++;
}
switch(mois)
{
case 1:
sprintf(nomMois, "Janvier");
break;
case 2:
sprintf(nomMois, "Fevrier");
break;
case 3:
sprintf(nomMois, "Mars");
break;
case 4:
sprintf(nomMois, "Avril");
break;
case 5:
sprintf(nomMois, "Mai");
break;
case 6:
sprintf(nomMois, "Juin");
break;
case 7:
sprintf(nomMois, "Juillet");
break;
case 8:
sprintf(nomMois, "Aout");
break;
case 9:
sprintf(nomMois, "Septembre");
break;
case 10:
sprintf(nomMois, "Octobre");
break;
case 11:
sprintf(nomMois, "Novembre");
break;
case 12:
sprintf(nomMois, "Decembre");
break;
}
semaine=(jourAn/7)+1;
jourSemaine=jourAn%7;
switch(jourSemaine)
{
case 1:
sprintf(nomJour, "Lundi");
break;
case 2:
sprintf(nomJour, "Mardi");
break;
case 3:
sprintf(nomJour, "Mercredi");
break;
case 4:
sprintf(nomJour, "Jeudi");
break;
case 5:
sprintf(nomJour, "Vendredi");
break;
case 6:
sprintf(nomJour, "Samedi");
break;
case 7:
sprintf(nomJour, "Dimanche");
break;
}
sprintf(texte1, "%ld:%ld:%ld", heure, minute, seconde);
texte1 = TTF_RenderText_Solid(police, "texte1", blanc);
texte2 = TTF_RenderText_Blended(police, "heure minute seconde", blanc);
sprintf(texte3, "Nous sommes le %s %ld %s %ld", nomJour, jour, nomMois, an);
SDL_Delay(1000);
positionTexte1.x=ecran->w/2-texte1->w/2;
positionTexte1.y=ecran->h/2-texte1->h/2;
positionTexte2.x=ecran->w/2-texte2->w/2;
positionTexte2.y=(ecran->h/2-texte1->h/2)-20;
positionTexte3.x=ecran->w/2-texte3->w/2;
positionTexte3.y=50;
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
SDL_BlitSurface(texte1, NULL, ecran, &positionTexte1);
SDL_BlitSurface(texte2, NULL, ecran, &positionTexte2);
SDL_BlitSurface(texte3, NULL, ecran, &positionTexte3);
SDL_Flip(ecran);
}
SDL_FreeSurface(texte1);
SDL_FreeSurface(texte2);
SDL_Quit();
TTF_CloseFont(police);
TTF_Quit();
return EXIT_SUCCESS;
}








)je ne peux pas directement te répondre mais par contre je m'y mets de suite !!! (faut aussi que je repotasse rapidement mes progs en c pour tout me remetrre en mémoire )




