Mostrar Ventana con Pygame

Posted on mayo 7, 2007. Filed under: PyGame |

Asi creamos una ventana en Pygame

screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption(‘Titulo del Juego’)
screen = pygame.display.get_surface()

La primera linea indica el ancho y el alto. La segunda coloca el titulo de la ventana. La Tercera Hace que esta ventana sirva para mostrar todas las imágenes.

En este momento, cuando corremos el programa, lo que se ve es que dura unas milésimas la ventana y luego desaparece. Para solucionar esto lo que hacemos es crear un Loop o bucle infinito. Pero hay que tener cuidado con lo que ejecuta este bucle, para que no bloque el sistema.

El otro problema, es que así como esta el programa, este no se cierra con la X. Para esto hay que crear una función que compruebe que se a pulsado la X de cerrar. El problema esta en que esta función toca ejecutarla en todo momento, para que siempre este alerta en que momento se pulsa la X.

Lo que tenemos que hacer con esta función es ejecutarla en un bucle infinito. Y entonces de esta manera solucionamos dos problemas de una. Hacemos que el Bucle infinito, que se necesita para mantener la ventana abierta, ejecute la función que detecta los eventos de mouse teclado, y entre ellos, el evento se pulsar la X.

La función la hacemos de la siguiente manera.

def detectarEventos(eventos):
for evento in eventos:
if evento.type == QUIT:
sys.exit(0)

Lo que hace es crear un for que revisa todo el contenido que tenga el paramentro que coloquemos. El parametro que mas adelanta vamos a colocar allí sera pygame.event.get(). este es una función, que creo que contienete todos los tipos de eventos. Si alguno de ellos es de tipo QUIT ejecuta la función sys.exit(0).

El bucle seria asi.

while True:
detectarEventos(pygame.event.get())

Y ya esta. Bastante mas difícil que Flash, pero eso es lo que cuesta ser plataforma. Todo el código quedaría así.

import pygame, sys,os
from pygame.locals import *
pygame.init()

screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption(‘Titulo del Juego’)
screen = pygame.display.get_surface()

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

Make a Comment

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

7 comentarios to “Mostrar Ventana con Pygame”

RSS Feed for Aprendiendo a Programar en Python con PyGame para hacer Video Juegos Comments RSS Feed

[…] on Mayo 8th, 2007. Basándonos en el post de como crear una ventana. nombre_imagen = os.path.join(”carpeta”,”imagen.bmp”)superficie_imagen = […]

creo que es bastante explicativo e instructivo para apropiarse de los conocimientos basicos en la creacion de ventanas y su tratamiento desde el enfoque del desarrollo de apicaciones en Python

Hola, encantado.
Esto no tiene nada que ver con tu post, entenderé que lo elimines, pero agradeceria que me contestaras por correo.
Hace tiempo que leo tu blog y recuerdo de algún post en el que explicabas que cambiaste a python+ pygame a causa de cierto retrasoque sufrias en flash con el sonido. Me gustaria saber si sufres ese mismo retraso con pygame, porque yo en pygame sobre windows lo sufro.

por adelantado. gracias

Hace mucho abandone el proyecto con pyton, pero lo que recuerdo es que también sufría ese retardo..

Bastante es con “B” y Python y Flash no tienen nada que ver.

hola amigo, estoy emezando con python y pygame, quisiera saber si me fallo la instalacion o algo asi , por que cuando ejecuto tu codigo me marca el siguinte error:
from pygame.locals import *
ImportError: No module named locals

como que sera lo que falla, de antemano gracias , saludos

si quieren aprender mas encontre una pajina
http://adictospy.jimdo.com


Where's The Comment Form?

Liked it here?
Why not try sites on the blogroll...

A %d blogueros les gusta esto: