Curso Python. Volumen XXI: Pygame, videojuegos en python. Parte I

Escrito por Javier Ceballos Fernández

Bienvenidos un día más al curso de Python. En este capítulo os vamos a introducir en la creación de videojuegos a través de la librería Pygame. Esta librería nos proporciona todas las funciones necesarias para poder crear un videojuego de 2 dimensiones. Así que pongámonos manos a la obra.

Lo primero que os quiero comentar es que “Pygame” es una biblioteca multimedia que funciona sobre las librerías SDL, y que nos va a permitir crear videojuegos en dos dimensiones de una manera sencilla.

Las librerías “SDL” (Simple DirectMedia Layer) son un conjunto de bibliotecas que proporcionan la funcionalidad básica para realizar operaciones de dibujado 2D, la gestión de efectos de sonido, música, carga y gestión de imágenes, estas son importantes ya que como os acabo de comentar “Pygame” funciona sobre ellas. Básicamente es una librería similar a OpenGL o DirectX (solo en la parte 2D), diseñada para ser más fácil de usar que estas otras, además, OpenGL sólo se encarga de la parte gráfica, en cambio SDL incluye otras cosas como son los sonidos.

Tal como os he comentado anteriormente utilizando “Pygame”, vamos a programar algunos videojuegos. No van a ser un juego inmenso en 3D con gráficos espectaculares y que necesite un ordenador de última generación. Los juegos que os vamos a enseñar a programar son juegos en 2D similares a los de consolas como la Super Nintendo, una Game Boy Advance o una NintendoDS (sin la parte táctil) etc. Para que os hagáis una idea de cómo son los juegos programados con “Pygame”, serán juegos del estilo “frets on fire”, “SolarWolf” o “pydance”. Podéis encontrar más ejemplos en el sitio de Pygame.

“Pygame” se encarga de manejar la parte más complicada dentro de la programación de un videojuego, es decir, se encarga de cargar y mostrar las imágenes (en formatos como PNG, BMP, PCX, TGA,…), sonido (formatos OGG, MP3, MIDI,…), vídeos, las ventanas del juego y monitoriza los dispositivos de entrada (como ratón, teclado y joystick) de una manera bastante sencilla. Por lo que básicamente uno se tiene que preocupar por la programación del juego en sí.

Requisitos previos (recomendados)

Como Python ya lo tenemos instalado lo que necesitamos es instalar “Pygame”. “Pygame” está disponible para varios sistemas (como Windows, GNU/Linux, Mac, etc.) así que los juegos creados pueden ser multiplataforma.

También se necesitará tener unos conocimientos básicos de matemáticas y física, debido a que nos resultará útil al programar juegos en general, es decir, el nivel de matemáticas y física que se maneja en secundaria. Ya que se trabajará con los conceptos físicos de velocidad, aceleración, etc. y  los conceptos matemáticos de puntos, coordenadas en el espacio, etc.

Primeros pasos

Lo primero hay que hay que hacer es importar el módulo de “Pygame”, lo cual se hace del siguiente modo:

import pygame
from pygame.locals import *

La segunda línea es opcional aunque se recomienda su uso, ya que la utilizamos para importar una serie de constantes que tiene “Pygame” (como las teclas del teclado). A continuación, os mostramos la estructura general que tendrá nuestra aplicación creada con “Pygame”:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Importacion de los módulos
import pygame
from pygame.locals import *

# y cualquier otro modulo usado

# ----------------------------------------------
# Constantes, como anchos y largo de pantalla, etc.
# ----------------------------------------------

# ----------------------------------------------
# Clases y Funciones utilizadas
# ----------------------------------------------

def main():
    pygame.init()

# La clase o función principal que crea o ejecuta el juego
# Contiene principalmente loop del juego (el alma de este)

if __name__ == "__main__":
    main()

Si os fijáis en la función “main”, hacemos uso de la instrucción “pygame.init()”, esto es para que se inicie “Pygame” y es necesario ejecutarlo antes de empezar a usar “Pygame” (por eso fue incluido al inicio de la función principal del juego). También lo podíamos haber invocado esta instrucción antes de llamar al a función “main()”

Aquí lo dejamos por hoy para que podáis ir asimilando los nuevos conceptos que os hemos explicado, os invitamos como siempre a que vayáis probando todo lo aprendido hasta el momento.

Y para todos los que se acaban de incorporar indicarles que tenemos un índice con todos los capítulos del curso, ya que nunca es tarde para empezar.

Fuente > Razón Artificial

Últimos análisis

Valoración RZ
10
Valoración RZ
8
Valoración RZ
9
Valoración RZ
9
Valoración RZ
10
Valoración RZ
9
Valoración RZ
10
Valoración RZ
7