Menu
CoddyTech

Oltrepassare il bordo

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

Un if esegue le sue righe solo quando una condizione è vera:

if comet_x > 640:
    comet_x = 0

La condizione termina con i due punti. Le righe sottostanti sono indentate di 4 spazi: appartengono all’if. Python verifica la condizione a ogni fotogramma. Mentre la cometa è nella finestra, la condizione è falsa e non succede nulla. Quando la cometa supera il bordo destro, la condizione è vera e la cometa torna a sinistra.

Un confronto è True oppure False. > significa maggiore di, < minore di e == verifica se due valori sono uguali. Un solo = assegna un valore; due confrontano.

Verifica un intervallo, ad esempio > 640, non un valore esatto. La cometa parte da 50 e si sposta di 3 pixel a ogni fotogramma: 635, 638, 641. Non raggiunge mai 640, quindi comet_x == 640 non sarebbe mai vero.

challenge icon

Sfida

Facile

Dopo la riga che sposta la cometa, aggiungi un if: quando comet_x è maggiore di 640, imposta comet_x su 0. La cometa attraverserà così la finestra ancora e ancora.

Provalo tu

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# Imposta gli elementi qui, prima del ciclo di gioco.
moon_x = 160
moon_y = 120
comet_x = 50
comet_y = 200

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

    # Modifica gli elementi qui, una volta per fotogramma.
    comet_x = comet_x + 3

    screen.fill((20, 24, 48))
    # Disegna qui, dopo il riempimento.
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
    pygame.draw.circle(screen, (120, 200, 255), (comet_x, comet_y), 8)

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

pygame.quit()

Tutte le lezioni di Python in una finestra di gioco

Esercitati da solo: Playground Pygame