begin process at 2012 02 11 05:34:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Multimédia

 > 

Problème avec SDL_SetColorKey


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec SDL_SetColorKey

lundi 1 août 2005 à 16:22:04 | Problème avec SDL_SetColorKey

The_Sin

Voici mon code :


#include <SDL/SDL.h>

SDL_Surface * sEcran ;
SDL_Surface * sImage ;

void init()
{
    SDL_Init(SDL_INIT_VIDEO) ;
    sEcran = SDL_SetVideoMode(800, 600, 32,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN) ;
    SDL_ShowCursor(0) ;

    sImage=SDL_LoadBMP("img.bmp") ;
    SDL_SetColorKey(sImage, SDL_SRCCOLORKEY, SDL_MapRGB(sImage->format,0,0,0)) ;

}

void Quit()
{
    SDL_FreeSurface(sImage) ;
    SDL_FreeSurface(sEcran) ;
    SDL_ShowCursor(1) ;
    SDL_Quit() ;

    exit(0) ;
}

int main(int argc, char *argv[])
{

    init() ;

    int up = 0 , down = 0, right = 0 , left = 0 ;

    SDL_Event event ;
    SDL_Rect rect, dest ;

    rect.x = 0 ;
    rect.y = 0 ;
    rect.w = 80 ;
    rect.h = 80 ;

    dest.x = 360 ;
    dest.y = 260 ;
    dest.w = 80 ;
    dest.h = 80 ;

    while(true)
       {
        while(SDL_PollEvent(&event))
           {
            if(event.type==SDL_QUIT)
               {
                Quit();
               }
            else if(event.type==SDL_KEYDOWN)
               {
                if(event.key.keysym.sym==SDLK_ESCAPE)
                   Quit() ;
               }
           }


       SDL_FillRect(sEcran,NULL,SDL_MapRGB(sEcran->format,8,63,15)) ;
       SDL_BlitSurface(sImage,&rect,sEcran,&dest) ;
       SDL_FillRect(sEcran,&rect,SDL_MapRGB(sEcran->format,4,63,55)) ;

       SDL_Flip(sEcran);

       }

    return 0 ;

}

Le code marche bien mais quand je met
SDL_SetColorKey(sImage, SDL_SRCCOLORKEY, SDL_MapRGB(sImage->format,0,0,0)) ;
le programme se lance et quitte, je comprend pas d'où vient le pbsurtout que sans cette commande le prog marche correctement...
Merci d'avance pour l'aide que vous pourrais me fournir
jeudi 4 août 2005 à 02:59:26 | Re : Problème avec SDL_SetColorKey

bathof

Salut,

A mon avis l'image n'a pas été chargé correctement car l'emplacement n'existe pas ou le BMP est invalide.

je te conseils donc de faire plus de test, je m'explique :

Tu init' les variables comme cela :

SDL_Surface * sEcran  = NULL;
SDL_Surface * sImage = NULL;
pour eviter les pointeurs "flottant".

ensuite test si sdl est init' correctement :

if( SDL_Init(DL_INIT_VIDEO) == -1 ) {
 printf("Erreur l'hors de l'initalisation de la SDL\n");
 exit(0);
}

et à chaques fois que tu charges une image test si elle a été chargée correctement comme cela :

SDL_LoadBMP("img.bmp",sImage);
if( sImage == NULL ) {
 printf("Erreur l'hors du chargement de img.bmp\n");
 exit(0);
}

Bonne chance et a +.


Cette discussion est classée dans : rect, sdl, event, secran, simage


Répondre à ce message

Sujets en rapport avec ce message

SDL : Gestion des mouvements dans une fonction [ par The_Sin ] Salut, j'ai un problème en SDL en C : J'ai déplacé ma boucle de gestion de mouvements dans une fonction de perso.c et là ça marche plus, le problème v Build Error avec Dev-Cpp + SDL [ par Rouliann ] Salut tout le monde!Alors voila le probleme, g tapé un code tt simple en C++ avec la SDL et le compilateur me dit : C:\Dev-Cpp\...\Makefile.win [Build sdl et clavier [ par scawf ] Bonjour, j ai un petit probleme avec SDL et la gestion du clavier.. je met: while(done == 0) { //... while ( SDL_PollEvent(&event) )  { if ( event.typ probleme de compilation SDL [ par darmoor ] Je suis dsl , le sujet doit etre souvent demandé mais j'ai deja cherché sur google et j'ai pas encore trouvé ce qu'il faut. Bon alors j'ai commencé a Blit de surface avec SDL [problème d'affichage] [ par cyberlewis ] Bonjour,Voilà j'ai fait un code (jeu vidéo SDL),j'arrive à afficher la partie que je veux (tiles, tiles.bmp) dans screen qui est affichée à l'écran, p SDL: La commande printf(""); n'affche rien! [ par yugiohjcj ] Bonjour,voici la source de mon programme:#include #include #include #define true 1int main(int argc, char *argv[]){ printf("\a"); if ( SDL_Init Besoin d'aide[urgent] [ par pyromaster77430 ] Bonjour j ai un probleme j utilise dev c++ pour compiler le code ci dessous mais a chaque fois j ai une erreur de syntaxefau t il rajouter quelque cho [C/C++][SDL]affichage de plusieur ssprites [ par madink ] salut ,je sais pas vraiment si c' est le bon forum , ou si quelqun de gentil peut me répondre mais je poste quand memeAlors pour un projet info je fai keybd_event [ par beb_aij_hi ] salut.j'essaye de simuler une frappe clavier avec keybd_event et il y a un truck qui m'echappe.voici un bout de code:#include #include int main(int ar SDL : linker error [ par bigben89 ] Ca fais à peine quelques mois que j'fais de la programmation (en C) et j'aimerais faire un peu de 2d et de 3d avec SDL. Je regarde des tutoriaux sur


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,683 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales