Colores que cambian
Parte de la sección El bucle del juego del Journey de Pygame de Coddy. Lección 12 de 35.
Un color consta de tres números, así que una variable puede ser uno de ellos. Cambia la variable en cada fotograma y el color cambiará en la pantalla.
glow = 0
while running:
# eventos
glow = (glow + 3) % 256
pygame.draw.circle(screen, (255, glow, 0), (240, 180), 60)En cada fotograma se suman 3 a la parte verde, así que el círculo cambia de rojo a naranja y luego a amarillo.
Todos los componentes de un color deben mantenerse entre 0 y 255. En 256, pygame se detiene con ValueError: invalid color. El operador % devuelve el resto de una división: 256 % 256 es 0 y 258 % 256 es 2. Así que (glow + 3) % 256 vuelve a empezar cerca de 0 en lugar de superar 255, y el círculo brilla en un ciclo continuo de rojo a amarillo.
Desafío
FácilHaz que el círculo brille de rojo a amarillo.
- Antes del bucle, establece
glow = 0. - En el bucle, antes de dibujar, suma 3 a
glowy mantenlo entre 0 y 255 con% 256. - Dibuja el círculo en
(255, glow, 0).
Pulsa «Jugar»: el círculo brilla de rojo a amarillo una y otra vez. Después, pulsa «Comprobar».
Pruébalo tú mismo
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Glow")
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((30, 30, 46))
pygame.draw.circle(screen, (255, 120, 0), (240, 180), 60)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de El bucle del juego
1Mueve un cuadrado
Abre una ventanaRellena el fondo4Movimiento basado en el tiempo
Tiempo deltaPíxeles por segundoVector2Aceleración y fricciónReaparecer al otro lado de la pantalla2Formas y colores
Círculos, líneas y polígonosContornos y esquinasUna escena de formasColores que cambianPractica por tu cuenta: Playground de Pygame