Hola que tal estoy haciendo un juego en dev c++ utilizando allegro y lo que quiero es poner una imagen la cual es un "persona" pero quiero eliminar el fondo (Fucsia) osea hacerla transparente estoy utilizando blit y mask_blit este es mi código pero no me sale :
blit(level1,screen,0,0,0,0,600,600);
masked_blit(mono,screen,0,pm,x,y,32,32);
blit(level1,screen,0,0,0,0,256,0);
Agradecería si alguien me pudiera ayudar
Se me ocurren dos formas:
- Cambiarle el fondo a negro y tirando para adelante ;-)
- Una mini función (chapuza):
void ImprimirSprite(BITMAP* sprite,int x,int y,int TAMX,int TAMY)
{
int i,j;
for (j = 0; j < TAMX;j++)
for (i = 0; i< TAMY;i++)
if (color del pixel[i][j] != FUCSIA)
putpixel(screen,x+j,y+i,color del pixel[i][j]);
}
Poniendo en "color del pixel" la función que te devuelva el color de un bitmap en una determinada coordenada (no me acuerdo cual era).
Usas Allegro 5?
Has intentado usar al_convert_mask_to_alpha?