""" 
 Algunos comandos de dibujo como ejemplo.
 
 Sample Python/Pygame Programs
 Simpson College Computer Science
 http://programarcadegames.com/
 http://simpson.edu/computer-science/
""" 

# Importamos una biblioteca de funciones llamada 'pygame'.
import pygame
 
# Inicializamos el motor de juego
pygame.init()
 
# Definimos algunos colores
NEGRO = (0, 0, 0)
BLANCO = (255, 255, 255)
AZUL = (0, 0, 255)
VERDE = (0, 255, 0)
ROJO = (255, 0, 0)
 
PI = 3.141592653

# Establecemos el largo y alto de la pantalla.
dimensiones = (400, 300)
pantalla = pygame.display.set_mode(dimensiones)
pygame.display.set_caption("Código de ejemplo para el módulo de dibujo")

#Iteramos hasta que el usuario haga click sobre el botón de salida.
hecho = False
reloj = pygame.time.Clock()

# Iteramos en el bucle hasta que hecho == False 
while not hecho:
  
    for evento in pygame.event.get(): # El usuario realizó alguna acción
        if evento.type == pygame.QUIT: # Si el usuario hizo click sobre salir
            hecho = True # Marcamos que hemos acabado y abandonamos este bucle
 

    # Todo el código de dibujo sucede después del bucle for y dentro del bucle
    # while not hecho.
    
    # Limpiamos la pantalla y establecemos su fondo.    
    pantalla.fill(BLANCO)

    # Dibujamos sobre la pantalla una línea verde de 5 píxeles de ancho que vaya
    # desde (0,0) hasta (50,75).    
    pygame.draw.line(pantalla, VERDE, [0, 0], [50, 75], 5)
     
    # Dibujamos sobre la pantalla varias líneas negras de 5 píxeles de ancho.     
    pygame.draw.lines(pantalla, NEGRO, False, [[0, 80], [50, 90], [200, 80], [220, 30]], 5)
        
    # Dibujamos sobre la pantalla una línea verde de 5 píxeles de ancho que vaya
    # desde (0,50) hasta (50,80).    
    pygame.draw.aaline(pantalla, VERDE, [0, 50], [50, 80], True)

    # Dibujamos el borde de un rectángulo.    
    pygame.draw.rect(pantalla, NEGRO, [75, 10, 50, 20], 2)
     
    # Dibujamos un rectángulo sólido.    
    pygame.draw.rect(pantalla, NEGRO, [150, 10, 50, 20])
     
    # Dibujamos el borde de una elipse, usando un rectángulo para definir sus bordes.    
    pygame.draw.ellipse(pantalla, ROJO, [225, 10, 50, 20], 2) 

    # Dibujamos una elipse sólida, usando un rectángulo para definir sus bordes.
    pygame.draw.ellipse(pantalla, ROJO, [300, 10, 50, 20]) 
 
    # Dibujamos un triángulo utilizando el comando polygon
    pygame.draw.polygon(pantalla, NEGRO, [[100, 100], [0, 200], [200, 200]], 5)
  
    # Dibujamos un arco como parte de una elipse. 
    # Usamos radianes para determinar qué ángulo tenemos que dibujar.
    pygame.draw.arc(pantalla, NEGRO, [210, 75, 150, 125],  0, PI / 2, 2)
    pygame.draw.arc(pantalla, VERDE, [210, 75, 150, 125],  PI / 2, PI, 2)
    pygame.draw.arc(pantalla, AZUL,  [210, 75, 150, 125],  PI, 3 * PI / 2, 2)
    pygame.draw.arc(pantalla, ROJO,   [210, 75, 150, 125], 3 * PI / 2, 2 * PI, 2)
    
    # Dibujamos un círculo
    pygame.draw.circle(pantalla, AZUL, [60, 250], 40)
    
    # Avanzamos y actualizamos la pantalla con lo que hemos dibujado.
    # Esto DEBE suceder después del resto de comandos de dibujo.
    pygame.display.flip()
    
    # Aquí limitamos el bucle while a un máximo de 60 veces por segundo.
    #Lo dejamos aquí y usamos toda la CPU que podamos.
    reloj.tick(60)
   
# Pórtate bien con el IDLE.
pygame.quit()