Menu
CoddyTech

Zmieniające się kolory

Część sekcji Pętla gry ścieżki Pygame w Coddy. Lekcja 12 z 32.

Kolor składa się z trzech liczb, więc zmienna może być jedną z nich. Zmieniaj zmienną w każdej klatce, a kolor będzie się zmieniać na ekranie.

glow = 0

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

Każda klatka dodaje 3 do składowej zielonej, więc koło zmienia kolor z czerwonego przez pomarańczowy na żółty.

Każda składowa koloru musi mieścić się w zakresie od 0 do 255. Przy 256 pygame zatrzymuje działanie i wyświetla ValueError: invalid color. Operator % zwraca resztę z dzielenia: 256 % 256 to 0, a 258 % 256 to 2. Dlatego (glow + 3) % 256 zaczyna ponownie od wartości bliskiej 0 zamiast przekraczać 255, a koło wciąż rozświetla się od czerwieni do żółci.

challenge icon

Wyzwanie

Łatwy
  1. Przed pętlą ustaw glow = 0.
  2. W pętli, przed rysowaniem, dodaj 3 do glow i utrzymuj jego wartość w zakresie od 0 do 255 za pomocą % 256.
  3. Narysuj okrąg w kolorze (255, glow, 0).

Spróbuj swoich sił

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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Pętla gry

Poćwicz samodzielnie: Edytor online Pygame