<-- Back to list of examples
"""
Sample code shows "Game Over" message.
Sample Python/Pygame Programs
Simpson College Computer Science
http://programarcadegames.com/
http://simpson.edu/computer-science/
"""
import pygame
# Definimos algunos colores
NEGRO = (0, 0, 0)
BLANCO = (255, 255, 255)
VERDE = (0, 255, 0)
pygame.init()
# Establecemos la altura y largo de la pantalla
dimensiones = [700, 500]
pantalla = pygame.display.set_mode(dimensiones)
pygame.display.set_caption("Ejemplo de: Game Over")
#Iteramos hasta que el usuario haga click sobre el botón de cerrar
hecho = False
# Usado para gestionar cuán rápido se actualiza la pantalla
reloj = pygame.time.Clock()
# Posición de partida del rectángulo
rect_x = 50
rect_y = 50
# Velocidad y dirección del rectángulo
rect_cambio_x = 5
rect_cambio_y = 5
# Esta es la fuente que usaremos para el texto que aparecerá en pantalla (tamaño 36)
fuente = pygame.font.Font(None, 36)
# Usamos esta variable booleana para avisar que el juego se acabó variable.
game_over = False;
# -------- Bucle Principal del Programa -----------
while not hecho:
# --- Procesamiento de Eventos
for evento in pygame.event.get(): # El usuario hizo algo
if evento.type == pygame.QUIT: # Si el usuario hace click sobre cerrar
hecho = True # Marca que ya lo hemos hecho, de forma que abandonamos el bucle
# Usaremos un click del ratón para indicar que el juego se acabó.
# Reemplaza éste, y establece juego_terminado a verdadero en tu propio
# juego cuando sepas que el juego se acabó. (Algo así como vidas==0)
elif evento.type == pygame.MOUSEBUTTONDOWN:
game_over = True
# --- Lógica del Juego
# Solo mueve y procesa la lógica del juego si éste no ha terminado.
if game_over == False:
# Mueve el punto de partida del rectángulo
rect_x += rect_cambio_x
rect_y += rect_cambio_y
# Rebota el rectángulo, si hace falta.
if rect_y > 450 or rect_y < 0:
rect_cambio_y = rect_cambio_y * -1
if rect_x > 650 or rect_x < 0:
rect_cambio_x = rect_cambio_x * -1
# --- Dibuja el marco
# Establecemos el color de fondo
pantalla.fill(NEGRO)
# Dibujamos el rectángulo
pygame.draw.rect(pantalla, VERDE, [rect_x, rect_y, 50, 50])
if game_over:
# Si el juego finalizó, dibujamos 'el juego se acabó'.
texto = fuente.render("Game Over", True, BLANCO)
texto_rect = texto.get_rect()
texto_x = pantalla.get_width() / 2 - texto_rect.width / 2
texto_y = pantalla.get_height() / 2 - texto_rect.height / 2
pantalla.blit(texto, [texto_x, texto_y])
else:
# Si el juego no acabó, dibujamos lo siguiente.
texto = fuente.render("Haz click para terminar el juego", True, BLANCO)
texto_rect = texto.get_rect()
texto_x = pantalla.get_width() / 2 - texto_rect.width / 2
texto_y = pantalla.get_height() / 2 - texto_rect.height / 2
pantalla.blit(texto, [texto_x, texto_y])
# Limitamos a 60 fotogramas por segundo
reloj.tick(60)
# Avancemos y actualicemos la pantalla con lo que hemos dibujado.
pygame.display.flip()
# Pórtate bien con el IDLE. Si nos olvidamos de esta línea, el programa se 'colgará'
# en la salida.
pygame.quit ()