Lista gwiazd
Część sekcji Python w oknie gry ścieżki Pygame w Coddy. Lekcja 24 z 32.
Lista przechowuje wiele wartości w jednej zmiennej, w kolejności, w nawiasach kwadratowych:
stars = [(100, 80), (220, 160), (360, 100)]Każdy element to tutaj krotka określająca pozycję. stars[0] to pierwszy element, (100, 80), a stars[1] — drugi. Liczenie zaczyna się od 0, tak jak w przypadku range.
Pętla for może przechodzić przez listę. Zmienna pętli przyjmuje po kolei każdy element:
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)Pozycja jest krotką, więc star trafia bezpośrednio w miejsce środka. Dodaj pozycję do listy, a pojawi się jeszcze jedna gwiazda — nie trzeba zmieniać pętli. Lista to pamięć gry o tym, co znajduje się na ekranie; pętla rysuje wszystko, co lista zawiera.
Wyzwanie
ŁatwyNarysuj niebo z pięcioma gwiazdami z listy:
- Dodaj
(360, 100),(480, 200)i(580, 70)na końcu listystars. - Zastąp wiersz rysujący
stars[0]pętląfor star in stars:, rysując każdą gwiazdę jako białe koło(255, 255, 255)o promieniu 5.
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.
stars = [(100, 80), (220, 160)]
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), stars[0], 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Wszystkie lekcje w sekcji Python w oknie gry
Poćwicz samodzielnie: Edytor online Pygame