HORLOGE NUMÉRIQUE EN SDL

acx01b Messages postés 280 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 8 juillet 2014 - 4 févr. 2008 à 18:40
TURNZ Messages postés 3 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 12 septembre 2008 - 12 sept. 2008 à 18:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45627-horloge-numerique-en-sdl

TURNZ Messages postés 3 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 12 septembre 2008
12 sept. 2008 à 18:09
Osef que tu préfère le jaune, les gouts et les couleurs ne se discute pas ici, c'est surtout le code qui dois être jugé..

Puis le vert est la couleur qui fait référence aux radio-réveil dont l'affichage est généralement de cette couleur là, alors pour ton histoire de jaune....
cs_cheikhouna Messages postés 3 Date d'inscription vendredi 8 février 2008 Statut Membre Dernière intervention 14 février 2008
8 févr. 2008 à 10:46
j'aurai preferé que tu mettes les digits en jaune et mets le son d jack bauer: ces evenements se deroulent entre 25h et 26h.....
Dorn17 Messages postés 9 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 21 juin 2008
6 févr. 2008 à 13:50
ACXO1B c'est génial. Effectivement c'est bien plus stable.
Mais c'est quoi la différence fondamentale entre PollEvent et Waitevent?

Pour le son c'est vrai ce serait plus cool, je m'y mets le plus tôt possible

Merci
Monyisageek Messages postés 18 Date d'inscription vendredi 5 octobre 2007 Statut Membre Dernière intervention 5 février 2008
5 févr. 2008 à 18:11
Ma question s'adressait a ISOHELIX, comme celle-ci:
Peut être tu n'es pas sous le bon OS, t'as quel windows ?

Effectivement acx01b, ton code est plus stable ;)

@++
Monyisageek Messages postés 18 Date d'inscription vendredi 5 octobre 2007 Statut Membre Dernière intervention 5 février 2008
5 févr. 2008 à 18:06
T'as pensé a ajouter des images ?
isohelix Messages postés 6 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 3 mai 2008
4 févr. 2008 à 20:22
Perso je ne mets pas de note car chez moi il ne fonctionna pas ton programme, enfin pas totalement. J'ai wxDevc++ et j'ai une fenêtre dos qui apparaît puis la fenêtre SDL et qui noire avec rien dedans... donc je peux pas jugé, désolé.
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
4 févr. 2008 à 19:08
Ça serait drôle si tu ajoutais le son que l'ont entend dans la série "twenty four hour" lorsqu'une seconde s'écoule :P
acx01b Messages postés 280 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 8 juillet 2014 6
4 févr. 2008 à 18:40
salut

j'ai un peu bidouillé ton code:


#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <SDL\SDL.h>


int main(int argc, char *argv[])
{
SDL_Event event;
SDL_Surface *ecran NULL, *num[10],*point NULL;
SDL_Rect position[8]; int i=0,j=0,k=0,l=0,m=0,n=0,a=1;

SDL_Init(SDL_INIT_VIDEO);

ecran = SDL_SetVideoMode(800, 300, 32, SDL_HWSURFACE);

SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));

num[0]=SDL_LoadBMP("digit-0.bmp");
num[1]=SDL_LoadBMP("digit-1.bmp");
num[2]=SDL_LoadBMP("digit-2.bmp");
num[3]=SDL_LoadBMP("digit-3.bmp");
num[4]=SDL_LoadBMP("digit-4.bmp");
num[5]=SDL_LoadBMP("digit-5.bmp");
num[6]=SDL_LoadBMP("digit-6.bmp");
num[7]=SDL_LoadBMP("digit-7.bmp");
num[8]=SDL_LoadBMP("digit-8.bmp");
num[9]=SDL_LoadBMP("digit-9.bmp");
point=SDL_LoadBMP("Deux_points.bmp");



Uint32 t0 = 0;
while(1) {
Uint32 t = SDL_GetTicks() / 1000;
int dif = t - t0;

int dif_sec = dif%60;
int dif_min = (dif/60)%60;
int dif_hour = dif/60/60;

int dif_sec_0 = dif_sec % 10;
int dif_sec_1 = dif_sec / 10;
int dif_min_0 = dif_min % 10;
int dif_min_1 = dif_min / 10;
int dif_hour_0 = dif_hour % 10;
int dif_hour_1 = dif_hour / 10;

position[0].x = 200; position[0].y = 100;
SDL_BlitSurface(num[dif_hour_1],NULL,ecran,&position[0]);
position[1].x = 262 ; position[1].y = 100;
SDL_BlitSurface(num[dif_hour_0],NULL,ecran,&position[1]);
position[2].x = 339 ; position[2].y = 100;
SDL_BlitSurface(point,NULL,ecran,&position[2]);
position[3].x = 371 ; position[3].y = 100;
SDL_BlitSurface(num[dif_min_1],NULL,ecran,&position[3]);
position[4].x = 433 ; position[4].y = 100;
SDL_BlitSurface(num[dif_min_0],NULL,ecran,&position[4]);
position[5].x = 510 ; position[5].y = 100;
SDL_BlitSurface(point,NULL,ecran,&position[5]);
position[6].x = 542 ; position[6].y = 100;
SDL_BlitSurface(num[dif_sec_1],NULL,ecran,&position[6]);
position[7].x = 604 ; position[7].y = 100;
SDL_BlitSurface(num[dif_sec_0],NULL,ecran,&position[7]);


while (SDL_PollEvent(&event)) {
switch(event.type) {
case SDL_QUIT: goto fin;
}
}
SDL_Flip(ecran);
}

fin:
for(i=0;i<10;i++) {
SDL_FreeSurface(num[i]);
}

SDL_FreeSurface(point);

SDL_Quit();
return EXIT_SUCCESS;
}
Rejoignez-nous