Menu
CoddyTech

Conta le stelle

Fa parte della sezione Python in una finestra di gioco del percorso Pygame di Coddy. Lezione 31 di 32.

Il giocatore deve sapere quanto manca al cielo per essere pieno. Mostra il conteggio su venti nell'angolo in alto a sinistra:

text = font.render(f"Stars: {len(stars)}/20", True, (230, 230, 240))
screen.blit(text, (20, 20))

La f-string combina un valore, len(stars), con del testo semplice, /20. Con sette stelle, mostra Stars: 7/20.

Crea il font nella parte di inizializzazione, accanto a stars = []. Creare un font lo carica, e richiede tempo, quindi fallo una volta sola. Disegnare il testo è un'operazione leggera e avviene a ogni fotogramma, così il conteggio è sempre aggiornato.

Disegna l'etichetta per ultima nella parte di disegno, così nessuna stella può coprirla.

challenge icon

Sfida

Facile

Mostra il conteggio:

  1. Nella parte di configurazione, crea font = pygame.font.Font(None, 36).
  2. Alla fine della parte di disegno, renderizza f"Stars: {len(stars)}/20" in (230, 230, 240) e disegnalo in (20, 20).

Provalo tu

import random
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
        if event.type == pygame.MOUSEBUTTONDOWN:
            stars.append(event.pos)

    # Modifica le cose qui, una volta per fotogramma.

    screen.fill((20, 24, 48))
    # Disegna qui, dopo il riempimento.
    pygame.draw.circle(screen, (240, 230, 160), (560, 80), 40)
    pygame.draw.rect(screen, (14, 16, 30), (0, 430, 640, 50))
    for star in stars:
        colour = (255, 255, 255)
        if random.randint(1, 30) == 1:
            colour = (110, 120, 170)
        pygame.draw.circle(screen, colour, star, 3)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Tutte le lezioni di Python in una finestra di gioco

Esercitati da solo: Playground Pygame