Menu
CoddyTech

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.

challenge icon

Wyzwanie

Łatwy

Narysuj 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()
quiz iconSprawdź się

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