Clicca per aggiungere
Fa parte della sezione Python in una finestra di gioco del percorso Pygame di Coddy. Lezione 25 di 32.
Una lista può crescere mentre il gioco è in esecuzione. stars.append(item) aggiunge un elemento alla fine.
Un clic del mouse arriva nel ciclo degli eventi come un evento MOUSEBUTTONDOWN, e event.pos indica dove è avvenuto, sotto forma di tupla (x, y):
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
stars.append(event.pos)Ogni clic aggiunge una posizione. La parte di disegno disegna già tutte le stelle presenti nella lista, quindi la nuova stella appare nel fotogramma successivo e resta lì, perché la lista la conserva.
La lista inizia vuota nella parte di configurazione: stars = []. Se venisse creata all'interno del ciclo di gioco, verrebbe svuotata a ogni fotogramma e ogni stella scomparirebbe subito.
Sfida
FacileNel ciclo degli eventi, quando arriva un evento MOUSEBUTTONDOWN, aggiungi event.pos a stars. Ogni clic posiziona quindi una stella bianca.
Provalo tu
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Prepara tutto qui, prima del ciclo di gioco.
stars = []
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Modifica le cose qui, una volta per fotogramma.
screen.fill((20, 24, 48))
# Disegna qui, dopo aver riempito lo schermo.
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Tutte le lezioni di Python in una finestra di gioco
6Liste di elementi
Una lista di stelleClicca per aggiungereConta con lenRimuovi una stellaNumeri casualiEsercitati da solo: Playground Pygame