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.
Aufgabe
Einfach- Setze vor der Schleife
glow = 0. - Addiere in der Schleife vor dem Zeichnen 3 zu
glowund halte den Wert mit% 256im Bereich von 0 bis 255. - 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()
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Die Spielschleife
2Formen und Farben
Kreise, Linien, VieleckeUmrisse und EckenEine Szene aus FormenFarben, die sich ändernÜbe selbstständig: Pygame-Playground