Menu
CoddyTech

Parametri

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

Una funzione che disegna sempre in (320, 240) è poco utile. I parametri consentono a chi la chiama di scegliere. Assegna loro un nome tra le parentesi di def e usali nel corpo come variabili:

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)

Ogni chiamata passa dei valori, gli argomenti, nello stesso ordine: draw_star(120, 100) esegue il corpo con x pari a 120 e y pari a 100. draw_star(520, 90) lo esegue di nuovo con altri valori. Una definizione, tante stelle quante ne chiami.

I parametri esistono solo all'interno della funzione mentre viene eseguita. Al di fuori di essa, x e y non significano nulla, oppure indicano ciò che hai memorizzato con quei nomi.

challenge icon

Sfida

Medio

Lascia che sia chi chiama a posizionare la stella:

  1. Modifica la definizione in def draw_star(x, y): e disegna attorno a (x, y): le linee da x - 10 a x + 10 e da y - 10 a y + 10, il punto in (x, y).
  2. Chiamala tre volte: in (120, 100), (320, 180) e (520, 90).

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():
    pygame.draw.line(screen, (255, 240, 200), (310, 240), (330, 240), 2)
    pygame.draw.line(screen, (255, 240, 200), (320, 230), (320, 250), 2)
    pygame.draw.circle(screen, (255, 240, 200), (320, 240), 4)

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Modifica gli elementi qui, una volta per ogni fotogramma.

    screen.fill((20, 24, 48))
    # Disegna qui, dopo aver riempito lo schermo.
    draw_star()

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

pygame.quit()

Tutte le lezioni di Python in una finestra di gioco

Esercitati da solo: Playground Pygame