Viernes, Mayo 28th, 2010
A continuación un vídeo tutorial de como programar videojuegos en Python utilizando Pygame, el video es de hace dos años pero aún así sigue siendo bastante vigente y de igual forma se pueden aprender cosas ya que el video es a forma de taller.
Contenido del video tutorial de Pygame
- Crear ventanas con Pygame.
- Cargar imágenes con Pygame.
- Mover imágenes con Pygame usando sprites.
- Colisiones en Pygame.
Vídeo | Programar videojuegos en Pygame
Jueves, Abril 15th, 2010
Para mover imágenes con Pygame tenemos varias posibilidades, una de esas es el teclado, pero para usarla debemos obtener una recta de la misma, por lo que usaremos la función get_rect(). En cuánto a detectar las teclas presionadas usaremos la función de Pygame key.get_pressed() a la cuál se le puede pasar como parámetro el tipo de tecla que se esta presionando.
personaje = pygame.image.load('ghost.PNG')
recta_personaje = personaje.get_rect()
El ejemplo anterior muestra como después de cargar la imagen obtengo una recta de la misma. Ahora pasaremos al bucle principal del juego y crearemos una nueva variable que contendrá la función de teclas presionadas, de esta forma:
presionada = pygame.key.get_pressed()
Y entonces procedemos con distintos condicionales, que dicen que si se presionó alguna tecla, realice ciertas funciones, estas funciones serán sumarle a su posición 1 para que así se mueva:
if presionada[K_RIGHT]:
screen.blit(fondo,recta_personaje,recta_personaje)
recta_personaje.x += 1
screen.blit(personaje,recta_personaje)
pygame.display.update()
El código anterior muestra en el condicional el código de la tecla presionada, que puede serK_RIGHT, K_LEFT, K_UP y así sucecivamente, códigos que puedes encontrar en el sitio web oficial. Luego a la recta obtenida en el atributo x o y (su posición) le sumamos 1 para que así vaya cambiando su posición y por último dibujamos y actualizamos en la pantalla con el método blit y el update. Veamos ahora un ejemplo completo:
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((448,336),0,32)
pygame.display.set_caption('Juegos en Pygame')
fondo = pygame.image.load('fondo.png')
personaje = pygame.image.load('ghost.PNG')
monstruo = pygame.image.load('monstruo.png')
screen.blit(fondo,(0,0))
screen.blit(personaje,(0,0))
screen.blit(monstruo,(300,300))
recta_personaje = personaje.get_rect()
recta_monstruo = monstruo.get_rect()
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == QUIT:
exit()
presionada = pygame.key.get_pressed()
if presionada[K_RIGHT]:
screen.blit(fondo,recta_personaje,recta_personaje)
recta_personaje.x += 1
screen.blit(personaje,recta_personaje)
pygame.display.update()
if presionada[K_LEFT]:
screen.blit(fondo,recta_personaje,recta_personaje)
recta_personaje.x -= 1
screen.blit(personaje,recta_personaje)
pygame.display.update()
if presionada[K_UP]:
screen.blit(fondo,recta_personaje,recta_personaje)
recta_personaje.y -= 1
screen.blit(personaje,recta_personaje)
pygame.display.update()
if presionada[K_DOWN]:
screen.blit(fondo,recta_personaje,recta_personaje)
recta_personaje.y += 1
screen.blit(personaje,recta_personaje)
pygame.display.update()
Y como siempre recuerdo que todo es mejor hacerlo orientado a objetos, por el momento como son tutoriales básicos lo trabajaremos así, pero hay que tener en cuenta que por ejemplo la carga de imágenes, pulsación de teclas y exposición de eventos se pueden hacer mediante clases y objetos que simplifican el trabajo.
Enlace: Códigos de teclas en Pygame
Jueves, Abril 15th, 2010
Hace unas semanas nos introducimos en la librería Pygame y aprendimos a crer una venatana y como era la estructura de un bucle principal para un uego común. Hoy, siguiendo con nuestra teoría y práctica de programación de juegos en 2D, aprenderemos a cargar una imagen.

Para cargar imágenes en Pygame utilizaremos la función pygame.image.load(filename) donde “filename” es la ruta que contiene nuestra imagen. También hay que tener en cuenta que una vez que carguemos la imagen debemos dibujarla en la pantalla.
personaje = pygame.image.load('ghost.PNG')
screen.blit(personaje,(0,0))
Donde “screen” representa una variable que contiene las características de visualización de la ventana de juego, por ejemplo:
screen = pygame.display.set_mode((380,380),0,32)
El método blit lo que hace es dibujar en la pantalla y esta tiene 2 parámetros, el primero representa el objeto del personaje (lo que vamos a dibujar) y el segundo parámetro son las posiciones “x” e “y” en las que se situará el mismo.
Por último debemos refrescar la pantalla para que se muesre bien los cambios, esto lo podemos poner en el bucle principal también.
pygame.display.update()
Un ejemplo como el de la imagen que se muestra arriba sería así:
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((448,336),0,32)
pygame.display.set_caption('Juegos en Pygame')
fondo = pygame.image.load('fondo.png')
personaje = pygame.image.load('ghost.PNG')
monstruo = pygame.image.load('monstruo.png')
screen.blit(fondo,(0,0))
screen.blit(personaje,(0,0))
screen.blit(monstruo,(300,300))
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == QUIT:
exit()
Auque siempre es bueno utilizar métodos de programación orientada a objetos para programar tareas como la carga de imágenes, así por ejemplo podemos crear clases de las imagenes y así utilizar sprites por ejemplo para detectar colisiones.