sábado, 11 de diciembre de 2010

Programando con Pygame: Cargando una Imagen

Hola a todos.

En la entrada anterior creamos una ventana con python y pygame. Ahora lo que haremos es cargar una imagen (Sprite) en nuestra ventana creada en la entrada anterior.

Para realizar esto primero tendremos que hacer una imagen de una pelota. Les recomiendo que utilicen Gimp para poder realizar los gráficos que utilizaremos en el juego. Gimp es un editor de gráficos muy potente similar a Adobe Photoshop, pero la ventaja que tiene Gimp es que es de codigo abierto. Bueno en este tutorial no hablaremos a fondo de Gimp porque estamos hablando especificamente de Python y Pygame. Pero hay muchos tutoriales buenos de Gimp para los que queiren aprender mas sobre este editor de gráficos.

Bueno yo con mi poca experiencia en Gimp hice esta pelota para poder cargarla dentro de la ventana de nuestro juego.

Para poder realizar esto, utilizare el archivo de la entrada anterior, que yo lo guarde como ventana.py. Los vuelvo a escribir al programa para que lo puedan ver.

# -*- coding: cp1252 -*-
# Importación de modulos o librerias

import pygame
from pygame.locals import *
import sys

# Definición de constantes
WIDTH = 500
HEIGHT = 500

# Programa principal
def main():
pygame.init()
pygame.display.set_caption("Mi primera ventana")
screen = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32)

while True:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit(0)

if __name__ == "__main__":
main()
Una vez que tenemos el programa cargaremos nuestra imagen de la pelota con el siguiente código:
# Definicion de la constante del color de fondo de la ventana
WHITE = (255, 255, 255)

# Agregando la imagen de la pelota
pelota = pygame.image.load("pelota.jpg")
pelotarect = pelota.get.rect()

# Estableciendo parametros para que la pelota se pueda ver todo el tiempo
screen.fill(WHITE)
screen.blit(pelota, pelotarect)


pygame.display.flip()
Bueno, expliquemos cada linea de este codigo.

En la primera linea WHITE = (255, 255, 255), lo que hacemos es definir una constante, que significa el color que vamos a utilizar de fondo para nuestra venta na, en este caso el blanco.

En la segunda línea pelota = pygame.image.load("pelota.jpg"), lo que hacemos es cargar nuestra imagen de la pelota que creeamos anteriormente.
En la tercera línea pelotarect = pelota.get_rect(), lo que hacemos es obtener el rect de la imagen que por defecto nos devuelve (0, 0), es decir que nuestra imagen sera cargada en la parte superior izquierda de nuestra pantalla.

En la cuarta línea screen.fill(WHITE), lo que hacemos es rellenar con el color blanco nuestra ventana.

En la quinta línea screen.blit(pelota, pelotarect) lo que hacemos es cargar la pelota en nuestra pantalla. blit en español podriamos decir que es como parpadear, luego veremos en que lugar exactamente la pondremos a ésta línea de codigo.

En la última línea pygame.display.flip(), lo que hace pygame es refrescar nuestra pantalla.

Ahora lo que voy a hacer es poner todo el código con el que solamente creabamos la pantalla con el código que cargamos nuestra imagen. El codigo que carga la imagen aparecera con un comentario que dice nueva línea para que puedan ver en que lugares vamos a poner todas las lineas de código antes mencionadas.

# -*- coding: cp1252 -*-


# Importación de modulos o librerias
import pygame
from pygame.locals import *

import sys

# Definición de constantes
WIDTH = 500
HEIGHT = 500
# Definicion de la constante del color de fondo de la ventana
WHITE = (255, 255, 255) # nueva línea

def main():
pygame.init()
pygame.display.set_caption("Mi primera ventana")
screen = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32)

# Agregando la imagen de la pelota
pelota = pygame.image.load("pelota.jpg") # nueva línea
pelotarect = pelota.get_rect() # nueva línea

while True:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit(0)

# Estableciendo parametros para que la pelota se pueda ver todo el tiempo
screen.fill(WHITE) # nueva línea
screen.blit(pelota, pelotarect) # nueva línea
pygame.display.flip() # nueva línea

if __name__ == "__main__":
main()
Finalmente al ejecutar el código que hemos creado, podremos ver nuestra imgen o sprite cargado en nuestra ventana.

Durante el desarrollo de este ejemplo, realizamos nuestro ejemplo directamente dentro del programa principal la carga de nuestra imagen o sprite. Lo más adecuado en el desarrollo de videojuegos es separar los objetos de nuestro juego, es decir seria mas sencillos manejarlos dentro de una clase llamada Pelota, que crearlos directamente en el programa principal, ya que si se desea agregar alguna nueva funcionalidad a nuestra pelota en estos momentos como moverla o hacerla rotar, se nos haría mas dificil la tarea. En la siguiente entrada crearemos cada uno de nuestros objetos del juego o sprites, separandolos por clases.

Hasta entonces me despido para poder estar armando la siguiente entrada ya que agregaremos algunos sprites mas en nuestra ventana.

Att. Pablo

viernes, 29 de octubre de 2010

Programando con Pygame: Creando una ventana

Hola a todos.

Sean bienvenidos a otra entrada más de programación pygame. Como mencione en la entrada anterior, en esta vamos a entrar a programar o realizar nuestras primeras cosas con pygame.

En esta entrada les hablaré de como crear una ventana, con esto las personas que no tienen mucho conocimiento de python y pygame, se daran cuenta de que en realidad es muy facil programar la libreria pygame.

El primer paso que vamos a realizar antes de comenzar a programar el IDLE de python para poder programar. El IDLE es un entorno de desarrollo para python que nos ayuda mucho a la hora de programar. Para abrir el IDLE nos vamos a Inicio->Todos los programas->Python 2.5->IDLE (Python GUI). Para las personas que no tengan conocimiento de la apariencia del IDLE, la siguiente imagen muestra el mismo.

Una vez abierto el IDLE creamos un nuevo archivo, para esto abrimos File->New Window. Al abrir la nueva venta comenzamos a escribir nuestro codigo para crear nuestra ventana.

Crear una ventana con Pygame
Primero que todo tenemos que importar los modulos o librerias que vamos a utilizar. En nuestro caso utilizaremos pygame que es el modulo principal. El siguiente código nos muestra el proceso de inicialización e importación.
import pygame
import sys
Como podemos ver en el código con la primera linea "import pygame" importamos la libreria pygame para poder trabajar con ella, en cambio en la segundia linea "import sys" importamos el módulo del sistema que nos permitira hacer cosas como cerrar nuestra ventana.

Una vez realizado esto, necesitamos definir las dimensiones de nuestra ventana, para ello vamos a definir 2 constantes que son el ancho "WIDTH" y el alrto "HEIGHT". Esto lo realizamos de la siguiente manera.
# Definición de Constantes
WIDTH = 500
HEIGHT = 500
En esta parte del codigo en la primera linea definimos una constante llamada "WIDTH" que es el ancho de nuestra ventana y en la segunda linea definimos otra constante llamada "HEIGHT" que es el alto de nuestra ventana cada una con una dimensión de 500 px.
# Definición del método principal (main)
def main():
pygame.init()
pygame.display.set_caption("Mi primera ventana Pygame")
screen = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32)

if __name__ == '__main__':
main()
Como podemos ver en esta sección del código fuente de nuestra ventana, lo primero que hacemos es crear o definir una función llamada "main" como podemos ver en la primera línea. En la seguna linea con "pygame.init()", lo que hacemos es inicializar la libreria de pygame para poder utilizarla dentro de nuestro juego. En la tercera línea "pygame.display.set_caption("Mi primera ventana Pygame")", lo que hacemos es establecer un titulo a nuestra ventana. En la última linea dentro de la función "main", lo que hacemos es crear una nueva superficie para nuestra ventana, ya que "pygame.display.set_mode((WIDTH, HEIGHT), 0, 32)", nos devuelve una superficie (surface), en la que posteriormente podremos empezar a dibujar los elementos del juego. Para que tengan una idea de los parametros que le paso a esta función por favor lean un poco la documentación de pygame. En este link pueden ver la documentación de la función set_mode.

Al compilar y ejecutar nuestro programa, nos daremos cuenta de algo que es que nuestra ventana desaparecera instaneamente. Esto se debe a que el programa solamente se ejecuta una vez. En el desarrollo de videojuegos, es necesario establecer un mecanismo para que nuestro programa siga corriendo hasta que el usuario sea quien desee terminar el mismo.

Para solucionar esto, agregaremos un bucle while que se estara ejecutando hasta que el usuario desee cerrar la ventana manualmente. El siguiente es el código que tendremos que agregar para solucionar esto.
# Agregando un bucle a la función main

while True:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit(0)
Lo que hacemos con esto es que el programa estará realizando lo mismo hasta que el usuario cierra la ventana manualmente.

Finalmente nuestro programa completa nos queda de la siguiente manera:
# -*- coding: cp1252 -*-
# Importación de modulos o librerias

import pygame
from pygame.locals import *
import sys

# Definición de constantes
WIDTH = 500
HEIGHT = 500

# Programa principal
def main():
pygame.init()
pygame.display.set_caption("Mi primera ventana")
screen = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32)

while True:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit(0)

if __name__ == "__main__":
main()

Finalmente al ejecutar nuestro programa, podemos ver el producto de este programa una ventana de pygame.

Resumen

Bueno en esta entrada lo que hicimos fue crear una ventana con pygame, para ello primeramente importamos un conjunto de librerias que entre ellas esta pygame, definimos constantes para el ancho y el alto de nuestra ventana y escri bimos la función principal. En la siguiente entrada procederemos a cargar una imagen en nuestra ventana y veremos si la podemos animar para avanzar un poco más rápido con estos tutoriales. De esta manera les agradezco a las personas que lean este tutorial y nos vemos en la proxima entrada.

Att. Pablo

martes, 5 de octubre de 2010

Instalación de Python y Pygame

Hola a todos como estan.

Como mencione, en esta les voy a enseñar a instalar Python y Pygame para poder trabajar y desarrollar nuestros videojuegos en dos dimensiones. Esta entrada esta dirigida a aquellas personas que no han instalado ni Python ni Pygame.
Con imagenes les explicare como instalar estas herramientas para poder trabajar. Comencemos.

1. INSTALACIÓN DE PYTHON

Primer Paso: El primer paso para instalar Python es ingresar a su página web http://www.python.org, ingresar en el menu Downloads (Descargas). La siguiente imagen muestra la realización del primer paso.


Segundo Paso: El segundo paso que vamos a realizar es elegir la versión de Python que vamos a instalar y elegir el sistema operativo en el cual vamos a instalar. En la pantalla principal nos aparecen las versiones que van desde la 2.7 a la 3.1. La siguiente figura nos muestra lo que estamos hablando.

Segundo Paso (Cont): En esta entrada haremos la instalación sobre Windows, es por esto que Pygame, nos recomienda que instalemos la versión 2.5 de Python que es sobre la que mejor funciona. Pero en la pantalla principal de Downloads (Descargas) solo nos muestra las versiones de la 2.7 a la 3.1. Para poder encontrar la versión 2.5 de Python abrimos el link que hay en el menu downloads llamado Releases y nos mostrará en la pantalla principal todas las versiones de Python. La siguiente imagen muestra lo que les estoy diciendo. Procedan a descargar el instalador de Python 2.5.


Tercer Paso: Una vez que hayamos descargado el Instalador de Python 2.5 procedemos a instalarlo. Este paso es muy sencillo y solamente se debe seguir por defecto las pantallas del instalador. La siguiente imagen muestra una secuencia de la instalación de Python.


Finalmente con esto completamos la instalación de Python sobre Windows. Para comprobar que python ha sido instalado correctamente entramos en Inicio->Todos los programas->Python 2.5->IDLE (Python GUI). En esta ventana podremos comenzar a escribir nuestro código python.

2. INSTALACIÓN DE PYGAME

Primer Paso: El primer paso para instalar Pygame es ingresar en su página web http://www.pygame.org, e ingresar en el menú Download (Descargas). La siguiente imagen muestra este paso.

Segundo Paso: El segundo paso que vamos a realizar es selccionar el tipo de instalador que necesitamos es decir para que sistema operativo queremos el instalador y que version. En nuestro caso como instalas Python 2.5 elegimos el instador pygame 1.9.1.win32-py2.5.msi, y lo descargamos. La siguiente pantalla nos muestra este paso.

Tercer Paso: Una vez descargado el instalador, procedemos a instalar pygame. Al igual que Python, Pygame es muy facil de instalar pues solamente se debe dar al boton siguiente hasta que finalice la instalación. La siguiente secuencia de imagenes muestra la instalación de pygame.


Cuarto Paso: Finalmente para comprobar que pygame ha sido instalado correctamente entramos al IDLE de Python y ejecutamos el siguiente código >>import pygame. Si no nos da ningun error es porque pygame se ha instalado correctamente.

Resumen

En esta entrada hemos intalado Python y Pygame para comenzar a realizar nuestros juegos en dos dimensiones. En la siguiente entrada ya entraremos a programar nuestros primeros ejemplos básicos para luego entrar en el desarrollo de un video juego pequeño ya veremos cual. Asi que por ahora les agradezco y hasta luego.


Att.


Pablo.

lunes, 4 de octubre de 2010

Introducción a Python y Pygame

Hola a todos.

En esta primera entrada vamos a hablar un poco de lo que es Python y de lo que es Pygame. No voy a meterme en detalles sobre Python. Sobre Pygame si vamos a entrar a mas detalle, ya que esta es la libreria que nos permite el desarrollo de videojuegos sencillos, pero si tenemos algo de creatividad especialmente para el diseño gráfico se veran juegos con muy buena pinta. Ojo yo no le hago mucho al diseño gráfico, asi que en este blog trataremos de usar gráficos que sean de libre distribución. Pero bueno como que me sali del tema de Python asi que comencemos.

PYTHONPython es un lenguaje de programación de alto nivel, interpretado y para mi manera de ver es uno de los lenguajes más faciles de comprender especialmente su sintaxis. A continuación les pong un fragmento de lo que se menciona en su página web python.org "Python es un lenguaje de programación que le permite trabajar con mayor rapidez e integrar sus sistemas con mayor eficacia. Usted puede aprender a usar Python y ver las ganancias casi inmediatas en la productividad y reducir los costos de mantenimiento". Además se puede mencionar que Python es un lenguaje multiplataforma, es decir que puede ser instalado en Windows, Linux, Mac OS y en cualquier sistema Unix en general. Como mencione antes este no es un tutorial de Python aunque obviamente necesitamos saber python para poder trabajar con pygame. Para aquellas personas que aún no han programado con python pueden entrar a su página web para poder ver su documentación.

PYGAME
Pygame es un conjunto de módulos diseñados para desarrollar videojuegos en dos dimensiones 2D de manera sencilla. Pygame trabaja sobre las librerias SDL. Las librerias SDL (Simple DirectMedia Layer) son un conjunto de librerias utilizadas para el dibujado 2D, carga de imágenes, reproducción de sonidos, etc; es decir SDL es una libreria similar a Direct X y OpenGL.

Como mencione Pygame es la libreria encargada de ayudarnos con el dibujado en pantalla, la carga y reproducción de sonidos y en genral el desarrollo de los videojuegos sencillos y en dos dimensiones.

Si quieren estar leyendo sobre Pygame les recomiendo entrar en su página web pygame.org. Ahi podrán encontrar documentación, tutoriales y juegos desarrollados por otras personas.

En esta entrada les hable un poco sobre Python y Pygame. La siguiente entrada vamos a hablar sobre la instalación de Python y Pygame, es decir vamos a preparar todo lo necesario para comenzar a programar algun videjuego de ejemplo.

Gracías por ahora y nos veremos en la siguiente entrada.


Att.


Pablo