Para cargar un archivo de imagen, definiremos una funcion que nos facilite el trabajo
def cargar_imagen(nombre,trasnparent=False): try: imagen = pygame.image.load(nombre)
except pygame.error, message: raise SystemExit, message imagen = imagen.convert() if transparent: color = imagen.get_at((0,0)) imagen.set_colorkey(color, RLEACCEL) return imagen
Ahora lo explicare línea por línea:
La línea 1 define la función, recibe dos parámetros el nombre/ruta del archivo y la segunda si tiene parte transparente (por defecto definida como falso).
La línea 2 asigna a la variable imagen la imagen a través de la función de Pygame pygame.image.load() si se puede sino, en la líneas 3 y 4 manejan el error y salen del programa.
La línea 5 convierte la imagen al tipo interno de Pygame que hace que sea mucho más eficiente.
Las línea 6 es un condicional que controla si el parámetro transparent es verdadero y en caso afirmativo ejecuta las líneas 7 y 8, la primera obtiene el color del pixel (0, 0) de la imagen (esquina superior izquierda) y la la línea 8 lo define como color transparente de la imagen. Es decir que si quieres una imagen con transparencia, el color que actúa como transparente se toma del pixel superior izquierdo, así que asegúrate que este color no está en la imagen.
Por último la línea 9 retorna la imagen después de todo el proceso.
El programa nos quedaría asi:
#importamos librerias import pygame from pygame.locals import * #iniciamos pygame pygame.init() #definimos constantes pantalla = pygame.display.set_mode((640, 480)) pygame.display.set_caption('Titulo de ventana') reloj = pygame.time.Clock() #definimos funciones def cargar_imagen(nombre,transparente=False): try: imagen = pygame.image.load(nombre) except pygame.error, message: raise SystemExit, message imagen = imagen.convert() if transparente: color = imagen.get_at((0,0)) imagen.set_colorkey(color, RLEACCEL) return imagen #Aqui es donde colocamos el fondo a la pantalla fondo = cargar_imagen('datos/fondo.jpg') pantalla.blit(fondo, (0, 0)) #es para esto que nos sirvio poner en una #variable los datos de la pantalla pygame.display.flip() #Bucle principal del juego while 1: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() elif event.type == KEYDOWN: if event.type == K_ESCAPE: pygame.quit() sys.exit() pygame.display.update() reloj.tick(60)
Y aqui tenemos ya nuestro programa con un fondo, ustedes pueden poner el que guste, yo use éste.
La imagen tienen que ponerla en una carpeta llamada datos, en la carpeta donde tienen guardado el programa para que éste codigo les funcione, osino tienen que quitar 'datos/fondo.jgp' y dejar solo 'fondo.jpg' para que no tengan que crear esa carpeta.
Pregunten cualquier duda que tengan ^_^
No hay comentarios:
Publicar un comentario