Accueil > > > HORLOGE NUMÉRIQUE EN SDL
HORLOGE NUMÉRIQUE EN SDL
Information sur la source
Description
Salut! Ben voila mon premier code posté :-) L'idée de base était de faire une horloge numérique avec la bibliothèque SDL.h Toute critique sera la bienvenue. Merci d'avance Ah le tout a été réalisé avec DEV-C++
Source
- #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;
-
- position[0].x = 200;
- position[0].y = 100;
-
- 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");
-
- /*Blitte les zéros de départ*/
- SDL_BlitSurface(num[0],NULL,ecran,&position[0]);
- position[1].x = 262 ; position[1].y = 100;
- SDL_BlitSurface(num[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[0],NULL,ecran,&position[3]);
- position[4].x = 433 ; position[4].y = 100;
- SDL_BlitSurface(num[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[0],NULL,ecran,&position[6]);
- position[7].x = 604 ; position[7].y = 100;
- SDL_BlitSurface(num[0],NULL,ecran,&position[7]);
-
- SDL_Flip(ecran);
-
- while(i<2 && j<4)
- {
- if(i<1)
- {SDL_BlitSurface(num[i],NULL,ecran,&position[0]);SDL_BlitSurface(num[j],NULL,ecran,&position[1]);SDL_Flip(ecran);}
- else
- {SDL_BlitSurface(num[i],NULL,ecran,&position[0]);SDL_BlitSurface(num[j],NULL,ecran,&position[1]);SDL_Flip(ecran);}
-
- if(k<1)
- {SDL_BlitSurface(num[k],NULL,ecran,&position[3]);SDL_BlitSurface(num[l],NULL,ecran,&position[4]);SDL_Flip(ecran);}
- else
- {SDL_BlitSurface(num[k],NULL,ecran,&position[3]);SDL_BlitSurface(num[l],NULL,ecran,&position[4]);SDL_Flip(ecran);}
-
- if(m<1)
- {SDL_BlitSurface(num[m],NULL,ecran,&position[6]);SDL_BlitSurface(num[n],NULL,ecran,&position[7]);SDL_Flip(ecran);}
- else
- {SDL_BlitSurface(num[m],NULL,ecran,&position[6]);SDL_BlitSurface(num[n],NULL,ecran,&position[7]);SDL_Flip(ecran);}
-
-
- n++;Sleep(1000);
- if(n==10)
- {n=0; m++;}
- if(m==6)
- {m=0;n=0; l++;}
- if(l==10)
- {l=0;k++;}
- if(k==6)
- {k=0;l=0;j++;}
- if(j==10)
- {j=0;i++;}
-
- }
-
-
- while(a==1)
- {SDL_WaitEvent(&event);
- switch(event.type)
- {case SDL_QUIT: a=0;break;}
- }
-
- for(i=0;i<10;i++)
- {SDL_FreeSurface(num[i]);}
- SDL_FreeSurface(point);
-
- SDL_Quit();
-
- return EXIT_SUCCESS;
- }
-
-
-
-
-
-
#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;
position[0].x = 200;
position[0].y = 100;
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");
/*Blitte les zéros de départ*/
SDL_BlitSurface(num[0],NULL,ecran,&position[0]);
position[1].x = 262 ; position[1].y = 100;
SDL_BlitSurface(num[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[0],NULL,ecran,&position[3]);
position[4].x = 433 ; position[4].y = 100;
SDL_BlitSurface(num[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[0],NULL,ecran,&position[6]);
position[7].x = 604 ; position[7].y = 100;
SDL_BlitSurface(num[0],NULL,ecran,&position[7]);
SDL_Flip(ecran);
while(i<2 && j<4)
{
if(i<1)
{SDL_BlitSurface(num[i],NULL,ecran,&position[0]);SDL_BlitSurface(num[j],NULL,ecran,&position[1]);SDL_Flip(ecran);}
else
{SDL_BlitSurface(num[i],NULL,ecran,&position[0]);SDL_BlitSurface(num[j],NULL,ecran,&position[1]);SDL_Flip(ecran);}
if(k<1)
{SDL_BlitSurface(num[k],NULL,ecran,&position[3]);SDL_BlitSurface(num[l],NULL,ecran,&position[4]);SDL_Flip(ecran);}
else
{SDL_BlitSurface(num[k],NULL,ecran,&position[3]);SDL_BlitSurface(num[l],NULL,ecran,&position[4]);SDL_Flip(ecran);}
if(m<1)
{SDL_BlitSurface(num[m],NULL,ecran,&position[6]);SDL_BlitSurface(num[n],NULL,ecran,&position[7]);SDL_Flip(ecran);}
else
{SDL_BlitSurface(num[m],NULL,ecran,&position[6]);SDL_BlitSurface(num[n],NULL,ecran,&position[7]);SDL_Flip(ecran);}
n++;Sleep(1000);
if(n==10)
{n=0; m++;}
if(m==6)
{m=0;n=0; l++;}
if(l==10)
{l=0;k++;}
if(k==6)
{k=0;l=0;j++;}
if(j==10)
{j=0;i++;}
}
while(a==1)
{SDL_WaitEvent(&event);
switch(event.type)
{case SDL_QUIT: a=0;break;}
}
for(i=0;i<10;i++)
{SDL_FreeSurface(num[i]);}
SDL_FreeSurface(point);
SDL_Quit();
return EXIT_SUCCESS;
}
Conclusion
Un des gros problèmes que j'ai eu est relatif à la gestion d'évènements par la SDL. En effet la condition d'arrêt que j'ai mise entre les lignes 85 et 89 : while(a==1) {SDL_WaitEvent(&event); switch(event.type) {case SDL_QUIT: a=0;break;} } ne marche pas correctement. A chaque fois le système n'arrive pas à terminer correctement l'application.
Historique
- 04 février 2008 18:09:13 :
- .
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Horloge numérique sous LINUX Fedora [ par diablo31170 ]
Salutations, j'essaye de faire une horloge sous Fedora avec Kdevelopp en C++ (bien sûr :) ), mais je n'arrive pas à trouver des sources qui
Thread [ par diablo31170 ]
Salut à tous,Comme le titre l'indique, je vais parler de Thread sous Linux en C++.Mon problème est de permettre l'affichage de l'horlog
FTP transfert de fichier [ par deck_bsd ]
Bonjour a tous,Alors voila j'expose mon problème . J'ai crée un programme qui cherche sur le disque dur toute les photos numérique et les envoie sur u
Cycle d'horloge [ par xkamen ]
Bonjour,Est ce que vous connaissez un site sur les nombres de cycles d'horloge nécessaires pour effectuer des opérations du style (modulo, multiplicat
Besoin urgent d'aide pour appli console (horloge) [ par dalma101 ]
IMPORTANT ET URGENT. MERCI D'AVANCE Bonjour, mon amie a un projet console d'horloge + réveil à faire pour ses cours en c++
horloge [ par dj_ludo ]
Bonjour, Je voudrais faire un programme en C pour faire tourner un servo moteur sur le port //. Pour faire mon programme j'utilise Devcpp, et mon prob
Calcul numérique avec Dev cpp [ par ffnajia ]
Bonjour à tous,Est ce que c'est possible de faire du calcul numérique avec dev cpp? on peut trouver des solveur pour résoudre des équations différenti
Remise à l'heure [ par XaThom ]
bonjour,Sous windows XP, je réalise une acquisition de données avec une carte au format PCI, le logiciel est développé avec c++ Builder 6. Lorsque le
Horloge C++.net [ par Geoffrai02 ]
Bonjour j'aurai besoin d' une Horloge dans un composant utilisateur.Sur celle-ci les 3 aiguilles (heure,minute,seconde) et les graduations de chaques
Evènements clavier [ par RoulianRoss ]
Bonjour,J'aimerais pouvoir piloter un bras articulé à l'aide d'un pavé numérique.Pour cela, j'aimerais savoir comment récupérer les événements clavier
|
Derniers Blogs
L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
Comparez les prix

HTC Hero
Entre 550€ et 550€
|