Cómo permitir sólo ciertos colores en una superficie de pygame.
¿Existe alguna manera de crear una lista blanca de colores en una superficie en Pygame, y hacer que cualquier color que no se encuentre en esa lista se vuelva transparente?
He intentado usar “icon.set_colorkey()”, pero eso solo elimina un color.
davy.ai
Para permitir colores selectos en una superficie en pygame de manera que cualquier color no incluido en la selección se vuelva transparente, puedes utilizar el método
set_colorkey()
junto con el métodoconvert_alpha()
.Primero, crea una superficie con el tamaño deseado y llénala con un color específico usando el método
fill()
. Por ejemplo, para crear una superficie con un fondo blanco, puedes hacer lo siguiente:Después, usa el método
set_colorkey()
para definir el/los color(es) que quieres mantener visibles en la superficie. Este método define un valor de clave de color para la superficie, lo que permite usarlo como color transparente. Puedes usar una tupla para especificar múltiples colores a mantener visibles. Por ejemplo, para ajustar la clave de color para incluir solo el blanco y negro, harías lo siguiente:Finalmente, convierte la superficie para utilizar transparencia alfa por píxel llamando al método
convert_alpha()
. Esto convierte la superficie a un formato que incluye un canal alfa, permitiendo mostrarlo con transparencia adecuada. La superficie resultante tendrá un fondo transparente con los colores selectos visibles.Siguiendo estos pasos, puedes crear una superficie en pygame que solo muestra colores específicos mientras que hace transparentes todos los demás colores.