domingo, 3 de febrero de 2008

Crear una ventana con pygame

El hola mundo de los video juegos, o sea el codigo mas sencillo posible consiste en crear una ventana donde pondremos los objetos de nuestro juego, como el heroe y los escenarios, aqui les escribo el codigo



#Codigo ----
import pygame
from sys import exit

SCREEN = pygame.display.set_mode((800, 600))
SCREEN.fill((0,0,0))

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


Aqui no hay mucho que explciar, se importa primero la libreria pygame y luego la funcion exit para salir del programa desde la libreria sys.

Luego se crea una ventana a traves del comando pygame.display.set_mode(), la cual como parametro recibe una tupla, o sea 2 datos, los cuales son el ancho y el alto.

Luego pintamos esa pantalla de negro, los colores estan dados en el sistema RGB, eso quiere decir que cada uno de los valores es un numero entre 0 y 255 que corresponde a la cantidad de color de los colores respectivos, la R es de RED, la G de GREEN y la B de BLUE. Si quisieramos pintar la pantalla de rojo deberias pasar el parametro (255, 0, 0).

Cada vez que hagamos un cambio en la pantalla para poder visualizarlo tenemos que actualizarla, eso se hace a travez del comando pygame.display.update()

Una vez lista la pantalla entramos al bucle principal y nuestro programa queda esperando hasta que alguien lo cierre.

ahora veamos un poco mas, como hacer un personaje, digamos que nuestro heroe es un circulo, y que solo se puede mover horizontalmente con las teclas flecha derecha y flecha izquierda, el codigo para hacer eso seria el siguiente:


#Codigo----
import pygame
from sys import exit

SCREEN = pygame.display.set_mode((800, 600))
posX = 400
posY = 300


while True:
SCREEN.fill((0,0,0))
pygame.draw.circle(SCREEN, (255,255,255), (posX, posY), 50)
pygame.display.update()

for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
posX = posX - 10
elif event.key == pygame.K_RIGHT:
posX = posX + 10

#-------

Ahora el codigo se parece mucho al anterior, las diferencias son que este programa responde a 2 eventos mas, que son presionar la tecla izquierda y presionar la tecla derecha, ademas de lo anterior se dibuja un circulo de color blanco en la posicion posX, posY las cuales podemos variar a medida que vamos presionando las teclas flecha izquierda y flecha derecha.



La funcion dibujar circulo recibe los siguientes parametros:
  1. Superficie de destino, en este caso la pantalla
  2. Color, tiene que estar en RGB
  3. Posicion del centro
  4. Radio
Bueno ya hicimos una introduccion a pygame, mas rato o mañana escribire un poco mas respecto al tema, como por ejemplo como dibujar cosas mas complejas que circulos.

No hay comentarios: