Menu
CoddyTech

Powtarzaj za pomocą for

Część sekcji Python w oknie gry ścieżki Pygame w Coddy. Lekcja 15 z 32.

Pętla for powtarza zawarte w niej wiersze, po jednym razie dla każdej przekazanej jej wartości:

for i in range(8):
    pygame.draw.circle(screen, (255, 255, 255), (40 + i * 80, 80), 5)

range(8) podaje liczby 0, 1, 2 i tak dalej aż do 7: osiem liczb, zaczynając od 0 i kończąc przed 8. Pętla po kolei zapisuje każdą z nich w i i wykonuje wcięte wiersze. Pierwsza gwiazdka znajduje się więc w x 40, następna w 120, potem w 200, aż do 600.

Wcięte wiersze tworzą treść pętli, tak jak w przypadku if. Pierwszy wiersz po treści, z powrotem na zewnętrznym poziomie wcięcia, zostaje wykonany po zakończeniu pętli.

Ta pętla znajduje się w części rysującej pętli gry, więc wszystkie osiem gwiazdek jest rysowanych ponownie w każdej klatce. Jest krótka i kończy się od razu, więc klatka nadal kończy się na czas.

i to często używana nazwa zmiennej liczącej, ale sprawdzi się dowolna nazwa: for n in range(8): liczy tak samo.

challenge icon

Wyzwanie

Łatwy

Zastąp pojedynczą gwiazdę pętlą for iterującą po range(8), która rysuje 8 białych gwiazd o promieniu 5 w punktach (40 + i * 80, 80).

Spróbuj swoich sił

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# Przygotuj wszystko tutaj, przed pętlą gry.

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Wprowadzaj zmiany tutaj, raz na klatkę.

    screen.fill((20, 24, 48))
    # Rysuj tutaj, po wypełnieniu ekranu.
    pygame.draw.circle(screen, (255, 255, 255), (40, 80), 5)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Wszystkie lekcje w sekcji Python w oknie gry

Poćwicz samodzielnie: Edytor online Pygame