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.
Wyzwanie
ŁatwyZastą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
4Pętle, które rysują
Powtarzaj za pomocą forPoczątek, koniec i krokUżywaj zmiennej pętliPętla w pętliLicz za pomocą whilePoćwicz samodzielnie: Edytor online Pygame