Menu
CoddyTech

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.

challenge icon

Sfida

Facile

Nel 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

Esercitati da solo: Playground Pygame