Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: Hackergamer en 10 de Septiembre de 2014, 03:21:12 PM

Título: Problemas con transparencias allegro
Publicado por: Hackergamer en 10 de Septiembre de 2014, 03:21:12 PM
Buenos días, antes que nada un saludo.
Tengo un problema al querer quitar el fondo de un sprite, cuando compilo mi programa no se quita el fondo de mi sprite, se supone que el fondo lo puse fucsia para que perdiera el fondo pero no pasa nada.
Ya use la función draw_sprite() pero no se quita el fondo.
Espero alguien me pueda ayudar.
Gracias !
Título: Re:Problemas con transparencias allegro
Publicado por: •Parra en 10 de Septiembre de 2014, 05:43:37 PM
No tengo ni idea sobre allegro, pero dale un vistazo a esto:

https://www.allegro.cc/manual/5/al_convert_mask_to_alpha

Sino puedes hacerlo a mano, iterando sobre los pixeles. Cual es la estructura donde guardas los pixeles?

Si el ARGB esta representado como 4 bytes separados..

if (tex.r == 0xFF && tex.g == 0x00 && tex.b == 0xFF)
    tex.a = 0x00; // no recuerdo si era 0 o 255 para el alpha, creo que 0

Si cada pixel esta representado como un entero de 32 bits:

if ((tex & 0x00FFFFFF) == 0x00FF00FF)
    tex = 0x00FF00FF;

Suponiendo que la representacion es ARGB. El and inicial lo hago para menospreciar el color alpha inicialmente y solo comprobar el colorkey.