<-- Back to list of examples

"""
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)
ROJO = (255, 0, 0)

def dibuja_hombrepalitos(pantalla, x, y):
    # Cabeza
    pygame.draw.ellipse(pantalla, NEGRO, [1 + x, y, 10, 10], 0)
 
    # Piernas
    pygame.draw.line(pantalla, NEGRO, [5 + x, 17 + y], [10 + x, 27 + y], 2)
    pygame.draw.line(pantalla, NEGRO, [5 + x, 17 + y], [x, 27 + y], 2)
 
    # Cuerpo
    pygame.draw.line(pantalla, ROJO, [5 + x, 17 + y], [5 + x, 7 + y], 2)
 
    # Brazos
    pygame.draw.line(pantalla, ROJO, [5 + x, 7 + y], [9 + x, 17 + y], 2)
    pygame.draw.line(pantalla, ROJO, [5 + x, 7 + y], [1 + x, 17 + y], 2)
    
# Inicio
pygame.init()

# Establecemos el largo y alto de la pantalla [largo,alto]
dimensiones = [700, 500]
pantalla = pygame.display.set_mode(dimensiones)  
pygame.display.set_caption("Mi Juego")
 
#Iteramos hasta que el usuario pulsa el botón de salir.
hecho = False
 
# Usamos esto para gestionar cuán rápido se actualiza la pantalla.
reloj = pygame.time.Clock()

# Ocultamos el cursor del ratón.
pygame.mouse.set_visible(0)


# Velocidad, en píxeles, por fotograma
x_speed = 0
y_speed = 0
 
# Posición actual
x_coord = 10
y_coord = 10

# -------- Bucle Principal del Programa -----------
while not hecho:
    #TODO EL PROCESAMIENTO DE EVENTOS DEBERÍA IR DEBAJO DE ESTE COMENTARIO
    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


            # El usuario presiona una tecla
        
        elif evento.type == pygame.KEYDOWN:
            # Mira si ha sido una de las flechas. Si es así
            # ajusta la velocidad.
            if evento.key == pygame.K_LEFT:
                x_speed =- 3
            elif evento.key == pygame.K_RIGHT:
                x_speed = 3
            elif evento.key == pygame.K_UP:
                y_speed =- 3
            elif evento.key == pygame.K_DOWN:
                y_speed = 3
                 
        # El usuario deja de presionar la tecla
        elif evento.type == pygame.KEYUP:
            # Si es una de las flechas, resetea el vector a cero.
            if evento.key == pygame.K_LEFT:
                x_speed = 0
            elif evento.key == pygame.K_RIGHT:
                x_speed = 0
            elif evento.key == pygame.K_UP:
                y_speed = 0
            elif evento.key == pygame.K_DOWN:
                y_speed = 0          
                
    # TODO EL PROCESAMIENTO DE EVENTOS DEBERÍA IR ENCIMA DE ESTE COMENTARIO

    # TODA LA LÓGICA DEL JUEGO DEBERÍA IR DEBAJO DE ESTE COMENTARIO

    # Desplaza al objeto según el vector velocidad.
    x_coord = x_coord + x_speed
    y_coord = y_coord + y_speed

    # TODA LA LÓGICA DEL JUEGO DEBERÍA IR ENCIMA DE ESTE COMENTARIO

    # TODO EL CÓDIGO DE DIBUJO DEBERÍA IR DEBAJO DE ESTE COMENTARIO
     
    # Primero, limpiamos la pantalla con color blanco. No pongas otros comandos de dibujo 
    # encima de esto, de lo contrario serán borrados por el comando siguiente.
    pantalla.fill(BLANCO)
    
    dibuja_hombrepalitos(pantalla, x_coord, y_coord) 

    # TODO EL CÓDIGO DE DIBUJO DEBERÍA IR ENCIMA DE ESTE COMENTARIO
     
    # Avanzamos y actualizamos la pantalla con lo que hemos dibujado.
    pygame.display.flip()
 
    # Limitamos a 60 fotogramas por segundo
    reloj.tick(60)
     
# Pórtate bien con el IDLE.
# Si nos olvidamos de ésta línea, el programa se 'colgará'
# en la salida.
pygame.quit()