Menu
CoddyTech

Farben, die sich ändern

Teil des Abschnitts Die Spielschleife der Pygame-Journey von Coddy. Lektion 12 von 32.

Eine Farbe besteht aus drei Zahlen, daher kann eine Variable eine davon sein. Ändere die Variable in jedem Frame, und die Farbe auf dem Bildschirm ändert sich.

glow = 0

while running:
    # Ereignisse
    glow = (glow + 3) % 256
    pygame.draw.circle(screen, (255, glow, 0), (240, 180), 60)

In jedem Frame wird zum Grünanteil 3 addiert, sodass sich der Kreis von Rot über Orange zu Gelb verfärbt.

Jeder Farbanteil muss zwischen 0 und 255 bleiben. Bei 256 bricht pygame mit ValueError: invalid color ab. Der Operator % liefert den Rest einer Division: 256 % 256 ist 0 und 258 % 256 ist 2. Daher beginnt (glow + 3) % 256 nahe bei 0 erneut, statt 255 zu überschreiten, und der Kreis leuchtet immer wieder von Rot bis Gelb.

challenge icon

Aufgabe

Einfach
  1. Setze vor der Schleife glow = 0.
  2. Addiere in der Schleife vor dem Zeichnen 3 zu glow und halte den Wert mit % 256 im Bereich von 0 bis 255.
  3. Zeichne den Kreis in (255, glow, 0).

Probier es selbst

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()
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Die Spielschleife

Übe selbstständig: Pygame-Playground