Kliknij, aby dodać
Część sekcji Python w oknie gry ścieżki Pygame w Coddy. Lekcja 25 z 32.
Lista może się powiększać podczas działania gry. stars.append(item) dodaje element na końcu.
Kliknięcie myszy pojawia się w pętli zdarzeń jako zdarzenie MOUSEBUTTONDOWN, a event.pos to jego położenie, krotka (x, y):
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
stars.append(event.pos)Każde kliknięcie dodaje jedną pozycję. Część rysująca już rysuje każdą gwiazdę z listy, więc nowa gwiazda pojawia się w następnej klatce i pozostaje tam, ponieważ lista ją przechowuje.
Lista jest początkowo pusta w części konfiguracji: stars = []. Gdyby powstała wewnątrz pętli gry, byłaby opróżniana w każdej klatce, a każda gwiazda natychmiast by znikała.
Wyzwanie
ŁatwyW pętli zdarzeń, gdy pojawi się zdarzenie MOUSEBUTTONDOWN, dodaj event.pos do stars. Każde kliknięcie umieszcza wtedy białą gwiazdę.
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 = []
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.
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Wszystkie lekcje w sekcji Python w oknie gry
Poćwicz samodzielnie: Edytor online Pygame