Rappelons que nous sommes toujours en mode 8 bits, donc on utilise toujours la palette de 256 couleurs de la GP32.
Et pour la transparence, la couleur par defaut de la GP32 c'est l'index 239 qui est un rose clair.
Un sprite est comme un fond, il peut etre transparent ou pas. Il n'y a aucune difference entre un background ou un sprite, sauf seulement la maniere de l'afficher

#include "gpdef.h" #include "gpstdlib.h" #include "gpgraphic.h" #include "gpmain.h" #include "gpfont.h" #include "gpmm.h" #include "background.h" //image background.bmp converti avec Gp32Converter #include "sprite.h" //image sprite.bmp converti avec Gp32Converter GPDRAWSURFACE gpDraw[2]; int nflip = 1; void GpMain(void *arg) { unsigned int i; for(i = 0 ; i < 2 ; ++i) GpLcdSurfaceGet(&gpDraw[i], i); GpSurfaceSet(&gpDraw[0]); for(;;) { /** Affichage de l'image a la position 0,0 de taille 320,240 **/ GpBitBlt(NULL,&gpDraw[nflip], 0, 0, 320, 240, (unsigned char*)background, 0, 0 , 320, 240) ; /** Affichage du sprite a la position 64,64 de taille 192,112 avec l'index 239 pour la transparence**/ GpTransBlt(NULL,&gpDraw[nflip], 64, 64, 192, 112, (unsigned char*)sprite, 0,0,192,112,239); GpSurfaceFlip(&gpDraw[nflip++]); nflip &= 0x01; } }
Voici les fichiers sources avec le fichier compilé pret a etre testé :
-- en zip
-- en rar