Dejemos eso y pasemos a lo interesante

Bueno, muchos de nosotros hemos querido cambiar el color de una imagen. Así que investigando, me encontré que para hacerlo, se necesita convertir la imagen primeramente en un arreglo de píxeles. Asi, buscamos en el arreglo el color que nos interesa cambiar, y lo remplazamos por otro

¿Como se hace? Bueno, aquí el código, y de paso su implementación para hacer una barra de vida

#!/usr/bin/python
#_*_ coding: utf-8 _*_
import os
import sys
from pygame.locals import *
import pygame
Alto=400 #variables para las dimensiones de la pantalla
Ancho=600
#asumo que no tengo que explicar como se carga la imagen...
#
def Cargar_img(direccion):
direccion_imagen=os.path.join(direccion)
try:
imagen=pygame.image.load(direccion_imagen)
except:
print "faltal error:0001"
imagen=imagen.convert()
colorimagen=imagen.get_at((0,0))
imagen.set_colorkey(colorimagen,RLEACCEL)
return imagen
def Remplaza_color(imagen, color, recolor, distancia = 0):
#y asi de simple se remplaza un color
#la funcion resive como argumento la imagen
#el color que queremos remplazar
#y con que color lo queremos remplazar
#distancia es para los colores que,
#sin ser en RGB iguales, al ojo lucen exactamente igual.
pixel_array = pygame.PixelArray(imagen) #la traformamos en arreglo
#por suerte, pygame inclulle una funcion que lo hace XD
pixel_array.replace(color, recolor, distancia)
pixel_array.make_surface() #lo convertimos en imagen
#este es mi MAIN... disculpen el nombre...
def Rempla():
pygame.init()#inicializa el juego
pantalla=pygame.display.set_mode((Ancho,Alto))
pygame.display.set_caption("Remplaza color")
imagen_1 = Cargar_img("barra.png")
imagen_2 = Cargar_img("barra.png")
imagen_3 = Cargar_img("barra.png")
imagen_1.set_alpha(125) #le ponemos una trasparencia
Remplaza_color(imagen_2, (0,0,0), (10,250,10),0.7)
Remplaza_color(imagen_3, (0,0,0), (200,10,10),0.7)
continuar = True
x = 2
aumento = True
while continuar:
for evento in pygame.event.get(): #para registrar los ventos como oprimir teclas
if evento.type==pygame.QUIT:
pygame.quit()#salir del juego
continuar=False
sys.exit()
pantalla.fill((250,250,250))
pantalla.blit(imagen_3,(0,0)) #la imagen de fondo
pantalla.blit(imagen_2, (0,0), (0,0,x,35)) #la que representa la vida
pantalla.blit(imagen_1, (0,0)) #la que hace que se vea el "volumen"
if aumento:
x+=0.5
if not(aumento):
x-=0.5
if x>=319 or x<=1:
aumento = not(aumento)
pygame.display.flip()
Rempla()
Adjunto la imagen que utilizo.
¿Alguna sugerencia? ¿Dudas?
