1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | """ Rebota un rectángulo contra las paredes. Sample Python/Pygame Programs Simpson College Computer Science Vídeo explicativo: http://youtu.be/-GmKoaX2iMs """ # Importamos la biblioteca Pygame import pygame # Definimos algunos colores NEGRO = ( 0 , 0 , 0 ) BLANCO = ( 255 , 255 , 255 ) VERDE = ( 0 , 255 , 0 ) ROJO = ( 255 , 0 , 0 ) pygame.init() # Establecemos la altura y largo de la pantalla dimensiones = [ 700 , 500 ] pantalla = pygame.display.set_mode(dimensiones) pygame.display.set_caption( "Rectángulo saltarín" ) #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 = 2 rect_cambio_y = 2 # ----------------------- BUCLE PRINCIPAL-------------------------------------------------# 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 # --- Lógica del juego # 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_x > 650 or rect_x < 0 : # Si el valor de x es mayor a 650 y menor a 0 píxeles, rect_cambio_x = rect_cambio_x * - 1 # modifico la tasa de cambio, de positiva, a negativa. if rect_y > 450 or rect_y < 0 : # Si el valor de y es mayor a 450 y menor a 0 píxeles, rect_cambio_y = rect_cambio_y * - 1 # modifico la tasa de cambio, de positiva, a negativa. # --- Dibujamos # Limpia la pantalla y establece su color de fondo pantalla.fill(NEGRO) # Dibujamos los Rectángulos pygame.draw.rect(pantalla, BLANCO, [rect_x, rect_y, 50 , 50 ]) pygame.draw.rect(pantalla, ROJO, [rect_x + 10 , rect_y + 10 , 30 , 30 ]) # --- Envolvemos todo # 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() |