Pogrammer sur un fond dégradé

Pogrammer sur un fond dégradé - C - Programmation

Marsh Posté le 20-01-2009 à 19:56:31    

Bonjour à tous,
 
J'ai utilisé la bibliothèque SDL pour crée un fond dégradé lorsque je compile et exécute mon code.
 
Avant sa j'avais fait un code me permettant de jouer au jeu reversi sur un tableau tout simple fait en C.
 
J'aurais donc voulu savoir comment faire pour mettre mon jeu sur le fond dégradé que je viens de créer, ou placer le code correspondant à mon jeu ??
 
( Après sa j'aimerais trouver un moyen de rajouter un vrai tableau avec de vrais pions pour jouer, et la encore je ne sais pas trop comment faire )  
 
voici mon dégradé :
 

Code :
  1. int main(int argc, char *argv[])
  2. {
  3.    
  4.    
  5.    
  6.    
  7. int i1,j1,degrade;
  8. SDL_Rect position,positionFond;
  9. position.x = 0;
  10. position.y = 0;
  11. SDL_Surface *ecran , *imageFond; // Le pointeur qui va stocker la surface de l'écran
  12. SDL_Surface *pixel = NULL;
  13. SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER); // Chargement de la vidéo, de l'audio et du timer
  14. ecran = SDL_SetVideoMode(700, 550, 32, SDL_HWSURFACE | SDL_DOUBLEBUF); // On tente d'ouvrir une fenêtre
  15.     if (ecran == NULL) // Si l'ouverture a échoué, on écrit l'erreur et on arrête
  16.     {
  17.         fprintf(stderr, "Impossible de charger le mode vidéo : %s\n", SDL_GetError());
  18.         exit(EXIT_FAILURE);
  19.     }
  20.    
  21. SDL_WM_SetCaption("Jeu !!", "Jeu" );
  22.    
  23. // Coloration de la surface ecran  
  24. SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
  25. pixel =SDL_CreateRGBSurface(SDL_HWSURFACE,1,1,32,0,0,0,0);
  26. for(i1=0 ; i1 <= ecran->w ; i1++)
  27. {
  28.         position.x = i1 ;
  29.         for(j1=0 ; j1 <= ecran->h ; j1++)
  30.     {
  31.             degrade=(i1+j1)*255/(ecran->h+ecran->w-2); // ici on calcule la couleur pour chaque pixel ;)
  32.             SDL_FillRect(pixel,0,SDL_MapRGB(ecran->format,degrade,0,0));
  33.             position.y = j1 ;
  34.     SDL_BlitSurface(pixel,NULL,ecran,&position);
  35.     }
  36. }
  37. SDL_FreeSurface(pixel);
  38. SDL_Flip(ecran); // Mise à jour de l'écran avec sa nouvelle couleur  
  39. pause();
  40. SDL_Quit();
  41. }


 
 

Reply

Marsh Posté le 20-01-2009 à 19:56:31   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed