Partage
  • Partager sur Facebook
  • Partager sur Twitter

j'ai un probleme avec les fenêtres

aidez moi

    11 octobre 2006 à 12:22:31

    J'ai en fait un problème dans les dégradés de couleur du cour :

    J'arrive à faire le dégradé du noir au blanc :) , le dégradé vertical :) mais je n'arrive pas à en faire un allant du blanc vers le noir ni d'une autre couleur :( . J'aurais besoin d'aide
    merci ^^

    voici mon code source

    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>

    void pause();

    int main(int argc, char *argv[])
    {
        SDL_Surface *ecran = NULL, *lignes[256] = {NULL};
        SDL_Rect position;
        int i = 0;
        int j = 0;

        SDL_Init(SDL_INIT_VIDEO);

        ecran = SDL_SetVideoMode(640, 256, 32, SDL_HWSURFACE);

        SDL_WM_SetCaption("Ma super fenêtre SDL !", NULL);
    for (i = 0 ; i <= 255 ; i++)
    {
        lignes[i] = SDL_CreateRGBSurface(SDL_HWSURFACE, 640, 1, 32, 0, 0, 0, 0); // Allocation des 256 surfaces
    }
    for (i = 0 ; i <= 255 ; i++)
    {
        position.x = 0;
        position.y = i;
        SDL_FillRect(lignes[i], NULL, SDL_MapRGB(ecran->format, i, i, i )); // Remplissage
        SDL_BlitSurface(lignes[i], NULL, ecran, &position); // Collage

    }
    for (i = 0 ; i <= 255 ; i++) // N'oubliez pas de libérer chacune des 256 surfaces !
        SDL_FreeSurface(lignes[i]);

        SDL_Flip(ecran); // Mise à jour de l'écran

        pause();

        SDL_Quit();

        return EXIT_SUCCESS;
    }

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

        while (continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
            }
        }
    }
    • Partager sur Facebook
    • Partager sur Twitter
      11 octobre 2006 à 12:57:41

      Salut,

      Petit défaut de rien du tout dans ton code : la variable j est inutilisée.

      Pour ce qui est de changer les couleurs, il faut que tu changes cette ligne :
          SDL_FillRect(lignes[i], NULL, SDL_MapRGB(ecran->format, i, i, i ));


      Je ne peux pas être plus être plus précis sans te donner la réponse, poses des questions si tu ne comprends pas quoi que ce soit ( dans le code ou les cours ), au lieu de dire " je ne comprends pas ", qui est vraiment très vague :)
      • Partager sur Facebook
      • Partager sur Twitter

      j'ai un probleme avec les fenêtres

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown