Python: primeros pasos con Pygame

Ventana con pygame

Pygame es una biblioteca para Python que permite realizar interfaces gráficas de forma rápida y sencilla. Actualmente es muy utilizada para desarrollar videojuegos en dos dimensiones, sin embargo, se pueden desarrollar todo tipo de aplicaciones gráficas con ella.

Esta biblioteca es fácil de instalar, puesto que se encuentra en los repositorios de las principales distribuciones de GNU/Linux, así que en una distribución tipo Debian, solo basta ejecutar el siguiente comando para instalarla:

$ sudo apt-get install python-pygame

Como ejemplo vamos a escribir un programa que realice lo siguiente:

  • Desplegar una  ventana de 500x500px

  • Mostrar una imagen en la ventana

  • Cambiar el color de fondo cada 0.5 segundo

Primero tenemos que importar la biblioteca Pygame.

import pygame

Para generar los colores utilizaremos la función randint, que se encuentra en la biblioteca random, al importarla de la siguiente forma:

from random import randint

Podremos utilizar la función directamente, sin necesidad de invocar a random cada vez.

Ahora se tiene que iniciar Pygame.

pygame.init()

Definimos el tamaño de la ventana.

x = 500
y = 500
ventana = pygame.display.set_mode((x,y))

Después asignamos el título de la ventana.

pygame.display.set_caption("Beastie")

Como se necesita que el fondo cambie de color cada medio segundo, debemos definir un retardo para actualizarlo.

retardo = pygame.time.Clock()

Ahora se tiene que cargar la imagen que queremos poner en la ventana, en mi caso beastie.png, de preferencia se debe usar una imagen con fondo transparente, para que se aprecie mejor el efecto que vamos a dar con el cambio de color en el fondo.

imagen = pygame.image.load("beastie.png")

Debemos integrar todos los elementos que queremos que se actualicen cada medio segundo en la ventana. Para lograrlo los pondremos dentro de un ciclo infinito.

while True:

Para representar el color, utilizamos una lista de tres números aleatorios, que representan la intensidad de las componentes roja, verde y azul, ya que el color estará codificado en RGB. El rango de valores permitido para cada componente es [0, 255].

color = [randint(0, 255) for i in range(3)]

Le pasamos el nuevo color que generamos a la función que se encarga de llenar el fondo de la ventana.

ventana.fill(color)

Ahora colocamos la imagen en la posición (0,50) de la ventana.

ventana.blit(imagen,(0,50))

Le indicamos que se actualice cada 0.5 segundos.

pygame.display.flip()
retardo.tick(0.5)

Finalmente revisamos los eventos detectados por la ventana, para determinar  si el usuario quiere cerrarla.

for evento in pygame.event.get():
    if evento.type == pygame.QUIT:
        exit()

El código completo queda de la siguiente forma:

import pygame
from random import randint 
 
pygame.init()

x = 500
y = 500 
ventana = pygame.display.set_mode((x,y)) 
pygame.display.set_caption("Beastie") 
 
retardo = pygame.time.Clock() 
 
imagen = pygame.image.load("beastie.png") 
     
while True: 
 
    color = [randint(0, 255) for i in range(3)] 
    ventana.fill(color) 
    ventana.blit(imagen,(0,50)) 
    pygame.display.flip() 
    retardo.tick(0.5)
    
    for evento in pygame.event.get(): 
       if evento.type == pygame.QUIT: 
           exit()

Ventana con pygameVentana con pygameVentana con pygame

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s