Créer un dégradé en SDL

Fermé
toto9340 - 15 janv. 2010 à 21:54
 Eddy69 - 8 juin 2010 à 21:10
Bonjour,
j'essaies de créer une fenêtre avec la SDL , en appuyant sur la flèche vers le haut la fenêtre devient blanche et en appuyant sur la flèche vers le bas la fenêtre devient noir, le problème c'est que l'exécution du programme ne s'effectue pas à peine la fenêtre s'affiche et disparait trop vite voici le code :
Code :
#include <stdlib.h>
#include <stdio.h>
#include <sdl/sdl.h>
int main( int argc , char *argv[] )
{
    SDL_Surface *ecran[256] = {NULL};
    SDL_Event event ;
    int i = 0 , j = 256 ;
    int continuer = 1 ;
 
    SDL_Init(SDL_INIT_VIDEO);
     for(i = 0 ; i <= 255 ; i++)
      ecran[i] = SDL_SetVideoMode(640,480,32,SDL_HWSURFACE | SDL_DOUBLEBUF);
    SDL_WM_SetCaption("Le Fond Ecran En SDL",NULL);
    SDL_EnableKeyRepeat(10,10);
     while(continuer)
     {
         SDL_WaitEvent(&event);
          switch(event.type)
          {
              case SDL_QUIT :
              continuer = 0 ;
              break;
              case SDL_KEYDOWN:
               switch(event.key.keysym.sym)
               {
                   case SDLK_UP :
                    for(i = 0 ; i <= 255 ; i++ )
                     SDL_FillRect(ecran[i],NULL,SDL_MapRGB(ecran[i]->format,i,i,i));
                     break;
                   case SDLK_DOWN :
                   for(j <= 255 ; j= 0 ; j--)
                     SDL_FillRect(ecran[j],NULL,SDL_MapRGB(ecran[j]->format,j,j,j));
                     break;
 
               }break;
 
          }
 
                for(i = 0 ; i <= 255 ; i++)
                 SDL_FillRect(ecran[i],NULL,SDL_MapRGB(ecran[i]->format,0,0,0));
                 SDL_Flip(ecran[i]);
          }
          for ( i = 0 ; i <= 255 ; i++)
           for ( j<=255 ; j=0 ; j--)
              SDL_FreeSurface(ecran[i]);
              SDL_FreeSurface(ecran[j]);
        SDL_Quit();
 
        return EXIT_SUCCESS;
}


j'arrive pas à trouver l'erreur ,merci d'avance .
A voir également:

1 réponse

Salut. fait toit une fonction pause : prototype : void pause();
Fonction :

void pause()
{
int continuer = 1;
SDL_Event event;

while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
}
}
}
0