Chiamarla più volte
Fa parte della sezione Python in una finestra di gioco del percorso Pygame di Coddy. Lezione 23 di 32.
Chiama una funzione in un ciclo e questa disegna un motivo. Il ciclo calcola gli argomenti, la funzione esegue il disegno:
for i in range(8):
draw_star(60 + i * 70, 60 + i * 45)Ogni passaggio è 70 pixel a destra del precedente e 45 pixel più in basso, quindi le stelle formano una linea da (60, 60) a (550, 375). Modifica 70 o 45 e ogni stella si sposterà di conseguenza.
Ecco perché vale la pena scrivere funzioni. Le righe che disegnano una stella esistono una sola volta. Per cambiare l'aspetto di tutte le stelle, allungando i raggi o usando un altro colore, modifica il corpo della funzione e ogni chiamata disegnerà la nuova stella.
Dai a una funzione un nome che descriva ciò che fa, spesso con un verbo: draw_star, move_comet, reset_game. Così una riga che la richiama si legge come una frase.
Sfida
FacileDisegna una fila di stelle: sostituisci la singola chiamata con for i in range(8): chiamando draw_star(60 + i * 70, 60 + i * 45). Le 8 stelle vanno da (60, 60) a (550, 375).
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.
def draw_star(x, y):
pygame.draw.line(screen, (255, 240, 200), (x - 10, y), (x + 10, y), 2)
pygame.draw.line(screen, (255, 240, 200), (x, y - 10), (x, y + 10), 2)
pygame.draw.circle(screen, (255, 240, 200), (x, y), 4)
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 il riempimento dello schermo.
draw_star(60, 60)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Python in una finestra di gioco
Esercitati da solo: Playground Pygame