Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2865 connectés 

  FORUM HardWare.fr
  Programmation
  C

  diaporama en sdl

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

diaporama en sdl

n°1963641
relais
Posté le 06-02-2010 à 20:34:09  profilanswer
 

salut  
 
 
j'essaie d'affiché a l'écran une suite de 10 images différent "diaporama" en SDL coder en C
mais après le menu une seul image apparais  
 

Code :
  1. #include <stdio.h>
  2. #include <cstdlib>
  3. #include <stdlib.h>
  4. #include <SDL/SDL.h>
  5. #include "main.h"
  6. #define nombreImage 10
  7. void animation(SDL_Surface *ecran);
  8. int main(int argc,char *argv[])
  9. {
  10.     int continu=1;
  11.     SDL_Init(SDL_INIT_VIDEO);
  12.     SDL_Event event;
  13.     SDL_Rect position;
  14.     position.x=0;
  15.     position.y=0;
  16.     SDL_Surface *ecran=NULL,*menu=NULL;
  17.     ecran=SDL_SetVideoMode(LONGEUR_FENETRE,LARGEUR_FENETRE,32,SDL_HWSURFACE);
  18.     menu=SDL_LoadBMP("menu.BMP" );
  19.     while (continu)
  20.     {
  21.         SDL_WaitEvent(&event);
  22.         switch (event.type)
  23.         {
  24.         case SDL_QUIT:
  25.             continu=0;
  26.             break;
  27.         case SDL_KEYDOWN:
  28.             switch (event.key.keysym.sym)
  29.             {
  30.             case SDLK_1:
  31.                 animation(ecran);/*on rentre dans la fonction*/
  32.                 break;
  33.             }
  34.         }
  35.         SDL_FillRect(ecran,NULL,SDL_MapRGB((*ecran).format,255,255,255));
  36.         SDL_BlitSurface(menu,NULL,ecran,&position);
  37.         SDL_Flip(ecran);
  38.     }
  39. }
  40. void animation(SDL_Surface *ecran)
  41. {
  42.     int continu1=1,i=0;
  43.     char matrice[100]={NULL};
  44.     SDL_Surface *compteur[nombreImage]={NULL},*compteurActuelle=NULL,*Fond=NULL;
  45.     SDL_Rect position;
  46.     SDL_Event event;
  47.     position.x=0;
  48.     position.y=0;
  49.     Fond=SDL_LoadBMP("D:\\projet codebolck\\animation\\fond.BMP" );
  50.     for (i=0;i<nombreImage;i++)
  51.     {
  52.         sprintf(matrice,"D:\\projet codebolck\\animation\\image%d.BMP",i);
  53.         compteur[i]=SDL_LoadBMP(matrice);/*on charge les 10 images*/
  54.     }
  55.     i=0;
  56.     while (continu1)
  57.     {
  58.         SDL_WaitEvent(&event);
  59.         switch (event.type)
  60.         {
  61.         case SDL_QUIT:
  62.             continu1=0;
  63.             break;
  64.         case SDL_KEYDOWN:
  65.             switch (event.key.keysym.sym)
  66.             {
  67.         case SDLK_1:
  68.                 i++;/*on fais défilé les images les images */
  69.                 break;
  70.             }
  71.             break;
  72.         }
  73.         compteurActuelle=compteur[i];
  74.         SDL_FillRect(ecran,NULL,SDL_MapRGB((*ecran).format,255,255,255));
  75.         SDL_BlitSurface(Fond,NULL,ecran,&position);
  76.         SDL_BlitSurface(compteurActuelle,NULL,ecran,&position);
  77.         SDL_Flip(ecran);
  78.     }
  79.     SDL_FreeSurface(Fond);
  80.     SDL_FreeSurface(compteurActuelle);
  81.     for (i=0;i<nombreImage;i++)
  82.     {
  83.         SDL_FreeSurface(compteur[i]);
  84.     }
  85. }

 
 
main.h

Code :
  1. #ifndef MAIN_H_INCLUDED
  2. #define MAIN_H_INCLUDED
  3. #define TAILLE_BLOC 50
  4. #define NB_BLOC_LARGEUR 10
  5. #define NB_BLOC_LONGEUR 12
  6. #define LONGEUR_FENETRE NB_BLOC_LONGEUR*TAILLE_BLOC
  7. #define LARGEUR_FENETRE NB_BLOC_LARGEUR*TAILLE_BLOC
  8. #endif


Message édité par relais le 07-02-2010 à 20:57:36
mood
Publicité
Posté le 06-02-2010 à 20:34:09  profilanswer
 

n°1963657
tpierron
Posté le 06-02-2010 à 22:01:55  profilanswer
 

Tu n'aurais pas oublié d'appuyer sur la touche Échap pour faire défiler tes images ?!

 

Parce que c'est comme ça que le code que tu as sensé écrit semble fonctionner...


Message édité par tpierron le 06-02-2010 à 22:02:40
n°1963682
gilou
Modérateur
Modzilla
Posté le 07-02-2010 à 10:15:27  profilanswer
 

Citation :

sprintf(matrice,"D:\\projet codebolck\\animation\\image%d.BMP",i);


C'est bien codebolck et non pas codeblock?
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°1963690
relais
Posté le 07-02-2010 à 11:58:11  profilanswer
 

salut  
tpierron  
meme si je tape sur echap,après le menu  j'ai toujours la premier image a l'écran
j'ai modifier le code pour faire défilé les images en tapant 1 sur le clavier ,idem
pour gilou  
faut d'orthographe de ma part  
 
                     

n°1963769
relais
Posté le 07-02-2010 à 20:55:51  profilanswer
 

erreur corrigé


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  diaporama en sdl

 

Sujets relatifs
Cherche diaporama défilement automatiqueDiaporama avec sql
Diaporama avec requete sql.diaporama/ caroussel plein écran
insérer un diaporama flash dans du htmldiaporama : lire les photos sur un site
intégrer un diaporama aléatoire dans ma pagepb de cible sur diaporama transformé en bouton
Diaporama tout simple en javascriptdiaporama, compter les photos
Plus de sujets relatifs à : diaporama en sdl


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR