"""
Cómo hacer un barrido de radar.
Sample Python/Pygame Programs
Simpson College Computer Science
http://programarcadegames.com/
http://simpson.edu/computer-science/
"""
# Importamos las bibliotecas pygame y math
import pygame
import math
# Inicializamos el motor de juegos
pygame.init()
# Definimos algunos colores
NEGRO = (0, 0, 0)
BLANCO = (255, 255, 255)
VERDE = (0, 255, 0)
ROJO = (255, 0, 0)
AZUL = (0, 0, 255)
PI = 3.141592653
# Establecemos la altura y largo de la pantalla
dimensiones = [400, 400]
pantalla = pygame.display.set_mode(dimensiones)
# Usado para gestionar cuán rápido se actualiza la pantalla
reloj = pygame.time.Clock()
#Iteramos hasta que el usuario haga click sobre el botón de cerrar
hecho = False
angulo = 0
while not hecho:
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
# Limpia la pantalla y establece su color de fondo
pantalla.fill(BLANCO)
# Dimensiones del barrido del radar
# Empezamos arriba a la izquierda en las coordenadas 20,20
# Largo/Alto de 250
dimensiones_caja = [20, 20, 250, 250]
# Dibujamos el borde de un círculo para 'barrerlo'
pygame.draw.ellipse(pantalla, VERDE, dimensiones_caja, 2)
# Dibujamos una caja negra alrededor del círculo
pygame.draw.rect(pantalla, NEGRO, dimensiones_caja, 2)
# Calculamos las coordenadas finales (x,y) de nuestro 'barrido',
# basándonos en el ángulo actual
x = 125 * math.sin(angulo) + 145
y = 125 * math.cos(angulo) + 145
# Dibujamos una línea desde el centro ubicado en las coordenadas (145, 145) hacia
# el punto final que hemos calculado arriba
pygame.draw.line(pantalla, VERDE, [145, 145], [x, y], 2)
# Incrementamos el ángulo en 0.05 radianes
angulo = angulo + .03
# Si no consigues un barrido completo, reinicia el ángulo en 0
if angulo > 2 * PI:
angulo = angulo - 2 * PI
# Avancemos y actualicemos 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 esta línea, el programa se 'colgará'
# en la salida..
pygame.quit()