1. Toma de contacto con Pygame: dibujar en pantalla
Un programa básico en Python, usando PyGame, que dibuje un "marciano" en la pantalla podría ser así:
# Mini-invaders, version 0.01 # (Imagen estatica durante 5 segundos) # Parte de la intro a Pygame, por Nacho Cabanes import pygame pygame.init() ancho = 640 alto = 480 pantalla = pygame.display.set_mode( (ancho, alto) ) imagen = pygame.image.load("spaceinvader.png") rectanguloImagen = imagen.get_rect() rectanguloImagen.left = 300 rectanguloImagen.top = 200 pantalla.fill( (0,0,0) ) pantalla.blit(imagen, rectanguloImagen) pygame.display.flip() pygame.time.wait(5000) pygame.quit()
El fuente debería ser fácil de seguir incluso si no conoces Python:
- "Importamos" la biblioteca de juegos que vamos a usar, pygame: import pygame
- Inicializamos pygame: pygame.init()
- Declaramos los que serán el ancho y el alto de la pantalla (o ventana) de juego, en pixels, porque los usaremos para preparar la esta ventana de juego: ancho = 640, alto = 480
- Preparamos la pantalla (el ancho y el alto se deben indicar entre paréntesis, porque no son dos números aislados, sino un "par", aunque de esos detalles hablaremos más adelante): pantalla = pygame.display.set_mode( (ancho, alto) )
- Cargamos la imagen que representará nuestro marciano (esa imagen deberá existir y estar en la misma carpeta que se encuentra nuestro fuente): imagen = pygame.image.load("spaceinvader.png")
- Cada imagen estará contenida en un "rectángulo", que será el que movamos cuando queramos que una imagen cambie de posición: rectanguloImagen = imagen.get_rect()
- Indicamos en que "coordenadas" de pantalla estará ese rectángulo: a 300 pixels de la parte izquierda y a 200 pixels de la parte superior de la pantalla: rectanguloImagen.left = 300, rectanguloImagen.top = 200
- Rellenamos la pantalla de color negro (el color (0,0,0), sin nada de rojo, verde ni azul, es el negro): pantalla.fill( (0,0,0) )
- Volcamos la imagen a la pantalla: pantalla.blit(imagen, rectanguloImagen)
- Hacemos que lo que hemos preparado en pantalla pase a ser visible: pygame.display.flip()
- Y finalmente esperamos 5 segundos (5000 milisegundos) antes de dar el programa por terminado: pygame.time.wait(5000)
- Para terminar "cerrando" pygame (sólo es necesario si lanzamos el "juego" desde el entorno Idle, no si lo hacemos desde línea de comandos o desde Geany): pygame.quit()
El resultado será pobre, pero es un comienzo:
Y la imagen del marciano, si quieres usar la misma que yo he utilizado, es ésta:
Desde Linux, probarlo es muy sencillo: basta con teclearlo en el editor Geany, guardarlo con el nombre "pygame001.py" (o cualquier otro nombre acabado en ".py") y pulsar el botón "ejecutar":
Si usamos Windows, o un Raspberry Pi o un Linux sin Geany, tampoco es mucho más difícil: deberemos comenzar por entrar al entorno Idle:
Como no es un programa interactivo, no deberemos comenzar a teclear inmediatamente, sino abrir una nueva ventana (menú File, opción New Window):
Teclearemos nuestro fuente y lo guardaremos (si no lo guardamos, tampoco es grave: se nos dará la opción de hacer justo antes de ponerlo en marcha):
Y finalmente lo lanzaremos (desde el menú Run, en la opción Run Module):
Si consigues reproducir estos pasos, quizá te atrevas a seguir leyendo...