Partage
  • Partager sur Facebook
  • Partager sur Twitter

SDL changer couleur ecran

    3 janvier 2009 à 17:51:49

    bonjours,décidé à me remettre à la programation aprés quelques mois d'abandon,je me suis remis au c avec SDL .
    voila mon problème:
    Malgrés le changement des valeur de couleur dans"SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,17,206,212));
    mon ecran reste deseperement noir.

    voici mon code:

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


    int main ( int argc, char *argv [])
    {
    SDL_Surface *ecran=NULL, *element=NULL,*menu=NULL;
    //TTF_Font *police=NULL;
    //SDL_Rect postexte;
    //SDL_Color Noir={0,0,0};

    SDL_Event event;
    SDL_Rect poselement;
    SDL_Rect posmenu;

    int continuer=1;

    SDL_Init( SDL_INIT_VIDEO );
    //TTF_Init();
    SDL_WM_SetIcon(SDL_LoadBMP("ico.bmp"),NULL);

    ecran=SDL_SetVideoMode(1024,748,32,SDL_HWSURFACE);
    SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,17,206,112));

    element=SDL_LoadBMP("elements.bmp");
    menu=SDL_LoadBMP("menus.bmp");

    SDL_WM_SetCaption("DESSELECT", NULL);

    //police=TTF_OpenFont("timesi.ttf",65);
    //texte=TTF_RenderText_Solid(police,"salut ",Noir);

    poselement.x=0;
    poselement.y=0;

    posmenu.x=30;
    posmenu.y=0;

    //postexte.x=60;
    //postexte.y=370;

    SDL_BlitSurface(element,NULL,ecran, &poselement);
    SDL_BlitSurface(menu,NULL,ecran, &posmenu);
    //SDL_BlitSurface(texte,NULL,ecran, &postexte);

    SDL_Flip(ecran);

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

    //TTF_CloseFont(police);
    //TTF_Quit();

    //SDL_FreeSurface(texte);

    SDL_Quit();


    return EXIT_SUCCESS;
    }

    • Partager sur Facebook
    • Partager sur Twitter
      3 janvier 2009 à 18:30:54

      Les balises de code ?????
      c'est sûrement pas mon cas...

      Citation : rolus

      #include <stdlib.h>
      #include <stdio.h>
      #include <SDL/SDL.h>
      #include <SDL/SDL_ttf.h>
      
      
      int main ( int argc, char *argv [])
      {
      SDL_Surface *ecran=NULL, *element=NULL,*menu=NULL;
      //TTF_Font *police=NULL;
      //SDL_Rect postexte;
      //SDL_Color Noir={0,0,0};
      
      SDL_Event event;
      SDL_Rect poselement;
      SDL_Rect posmenu;
      
      int continuer=1;
      
      SDL_Init( SDL_INIT_VIDEO );
      //TTF_Init();
      SDL_WM_SetIcon(SDL_LoadBMP("ico.bmp"),NULL);
      
      ecran=SDL_SetVideoMode(1024,748,32,SDL_HWSURFACE);
      SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,17,206,112));
      
      element=SDL_LoadBMP("elements.bmp");
      menu=SDL_LoadBMP("menus.bmp");
      
      SDL_WM_SetCaption("DESSELECT", NULL);
      
      //police=TTF_OpenFont("timesi.ttf",65);
      //texte=TTF_RenderText_Solid(police,"salut ",Noir);
      
      poselement.x=0;
      poselement.y=0;
      
      posmenu.x=30;
      posmenu.y=0;
      
      //postexte.x=60;
      //postexte.y=370;
      
      SDL_BlitSurface(element,NULL,ecran, &poselement);
      SDL_BlitSurface(menu,NULL,ecran, &posmenu);
      //SDL_BlitSurface(texte,NULL,ecran, &postexte);
      
      SDL_Flip(ecran);
      
      while(continuer)
      {
      SDL_WaitEvent(&event);
      switch(event.type)
      {
      case SDL_QUIT:
      continuer=0;
      break;
      }
      }
      
      //TTF_CloseFont(police);
      //TTF_Quit();
      
      //SDL_FreeSurface(texte);
      
      SDL_Quit();
      
      
      return EXIT_SUCCESS;
      }
      


      sinon... Aucune idée.
      enfin... je dois avouer que je n'ai que "survolé" le code :D
      • Partager sur Facebook
      • Partager sur Twitter
        4 janvier 2009 à 9:19:23

        Merci pour ta réponse,Tobast,je pense que c'est la déclaration de SDL_ttf qui est en cause car en la suppriment je n'est plus le problème.

        pour le code ,je suis allé sur le tutoriel,mais je n'ai pas compris comment on doit faire pour aboutir au résultat auquel tu est arrivé avec mon code.
        J'ai laissé un message ,j'espère avoir une meilleure explication que dans le tutoriel.
        • Partager sur Facebook
        • Partager sur Twitter
          4 janvier 2009 à 11:34:51

          Tu mets tout ton code, comme tu l'a fait au début, puis tu le sélectionne, va dans la liste déroulante "Code", sous-partie "prog'", et cliques sur "C". et voilà...
          Par contre, il faut faire "aperçu final" ou "envoyer" pour voir le résultat :D

          EDIT : Cette option n'est pas dispo en "réponse rapide"
          • Partager sur Facebook
          • Partager sur Twitter

          SDL changer couleur ecran

          × 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