Wywołuj wiele razy
Część sekcji Python w oknie gry ścieżki Pygame w Coddy. Lekcja 23 z 32.
Wywołaj funkcję w pętli, a narysuje wzór. Pętla oblicza argumenty, a funkcja rysuje:
for i in range(8):
draw_star(60 + i * 70, 60 + i * 45)Każde kolejne przejście pętli znajduje się 70 pikseli na prawo od poprzedniego i 45 pikseli niżej, więc gwiazdy układają się w linię od (60, 60) do (550, 375). Zmień 70 lub 45, a każda gwiazda się przesunie.
Dlatego warto pisać funkcje. Wiersze kodu rysujące gwiazdę występują tylko raz. Aby zmienić wygląd każdej gwiazdy — wydłużyć promienie lub zmienić kolor — zmień treść funkcji, a każde jej wywołanie narysuje nową gwiazdę.
Nazwij funkcję zgodnie z tym, co robi, często używając czasownika: draw_star, move_comet, reset_game. Wtedy wiersz, który ją wywołuje, brzmi jak zdanie.
Wyzwanie
ŁatwyNarysuj linię gwiazd: zastąp pojedyncze wywołanie pętlą for i in range(8): wywołującą draw_star(60 + i * 70, 60 + i * 45). 8 gwiazd rozciąga się od (60, 60) do (550, 375).
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.
def draw_star(x, y):
pygame.draw.line(screen, (255, 240, 200), (x - 10, y), (x + 10, y), 2)
pygame.draw.line(screen, (255, 240, 200), (x, y - 10), (x, y + 10), 2)
pygame.draw.circle(screen, (255, 240, 200), (x, y), 4)
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.
draw_star(60, 60)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Python w oknie gry
Poćwicz samodzielnie: Edytor online Pygame