Partage
  • Partager sur Facebook
  • Partager sur Twitter

[SDL] Problème d'images

Sujet résolu
    8 août 2007 à 18:36:32

    Bon pour vous mettre en contexte je fait un petit jeu sdl, genre RPG.
    Ya un gros problème, jusqu'à très récemment les images se blittaient correctement, avec les bonnes couleures, à la bonne place, etc...

    Mais la je me suis mis a avoir du noir...
    Rien que du noir. :o
    Je me suis dit qu'il loadait mal l'image et mettait du noir partout.

    En fait j'ai découvert que lorsque qu'il load(ou blitte je sait pas :( ) l'image, si il voit un pixel 255,255,255 il met du blanc, et il met du noir pour n'importe quelle autre combinaison RGB.

    Vous me suivez?

    Alors la, je me suis dit qu'il y a un gros problème et comme une fenêtre noire qui fait rien c'est pas trop sympa... :colere2:

    Si vous avez une idée comment cela se produit merci d'avance.

    PS:Voilà une partie le code qui blit:
    1. SDL_Surface* blitSurface=IMG_Load("data/images/bigwhite.PNG");
    2.     SDL_Surface* img=IMG_Load("data/images/tiles/herbe.JPG");
    3.     while (runs){
    4.         SDL_Rect pos;
    5.         pos.x=0;
    6.         pos.y=0;
    7.         SDL_FillRect(blitSurface,NULL,SDL_MapRGB(blitSurface->format, 255,255, 255));
    8.         for (int x=0;x<15;x++)
    9.         {
    10.             pos.y=0;
    11.             for (int y=0;y<10;y++)
    12.             {
    13.                 //printf("p0 %d\n",m[x][y]);
    14.                 SDL_BlitSurface(img, NULL,blitSurface, &pos);//m[x][y]
    15.                 pos.y+=40;
    16.             }
    17.             pos.x+=40;
    18.         }
    19.         SDL_BlitSurface(blitSurface, NULL,screen, &zeropos);//,screen);
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      8 août 2007 à 20:51:25

      Je ne vois pas de SDL_Flip().

      Sinon j'ai moi aussi une question : pourquoi ta ligne 7 existe-t-elle? Tu charge une image (blanche) et tu la "repeints". Je vois pas l'intérêt.
      • Partager sur Facebook
      • Partager sur Twitter
        8 août 2007 à 22:07:40

        le SDL_Flip(screen) est plus loin dans le code. Et pour la ligne 7 je ne me souviens plus comment initialiser une image 800,600.

        Mais ca ne regle pas mon problème.
        • Partager sur Facebook
        • Partager sur Twitter
          8 août 2007 à 22:34:57

          Citation : Manux

          le SDL_Flip(screen) est plus loin dans le code. Et pour la ligne 7 je ne me souviens plus comment initialiser une image 800,600.

          Mais ca ne regle pas mon problème.


          Est-ce que le SDL_Flip est bien dans ta boucle au moin?
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            8 août 2007 à 23:11:03

            si cette image est chargée via une fonction comme IMG_Load, c'est tout bon, pas besoin de faire quoi que soit d'autre. Si tu ne crée pas t'a surface avec cette fonction (ou une similaire), c'est la fonction "SDL_CreateRGBSurface" qui doit t'être utile à mon avis. Regarde dans la doc pour savoir plus à son sujet.
            • Partager sur Facebook
            • Partager sur Twitter
              8 août 2007 à 23:32:53

              ah merci je crois que j'ai trouvé le problème.
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                8 août 2007 à 23:35:41

                et quel est-il? (ça m'intéresse :) )
                • Partager sur Facebook
                • Partager sur Twitter
                  12 août 2007 à 3:55:29

                  En fait c'Est super simple, l'image etait sauvée en tant que bitmap monochrome, j'en déduis que le format de l'image était binaire(soit noir soit blanc) et donc les images déssinées dessus étaient toutes noires.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [SDL] Problème d'images

                  × 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