Inizio, fine e passo
Fa parte della sezione Python in una finestra di gioco del percorso Pygame di Coddy. Lezione 16 di 32.
range accetta fino a tre numeri: range(start, stop, step).
range(5): 0, 1, 2, 3, 4range(2, 6): 2, 3, 4, 5range(60, 200, 40): 60, 100, 140, 180
Inizia da start, aggiunge step ogni volta e si ferma prima di raggiungere stop. Il valore stop non è mai incluso nell’intervallo.
Con un valore iniziale e un passo, la variabile del ciclo può essere direttamente la posizione, senza bisogno di una somma:
for x in range(60, 600, 40):
pygame.draw.circle(screen, (255, 160, 60), (x, 420), 8)Per terminare una riga a 580, stop deve essere maggiore: range(60, 580, 40) termina a 540. Il passo può essere negativo per contare alla rovescia: range(10, 0, -2) corrisponde a 10, 8, 6, 4, 2.
Sfida
FacileSotto le stelle, disegna una fila di lanterne con un ciclo for:
- Cerchi arancioni
(255, 160, 60)di raggio 8 a y420. - x da 60 a 580, ogni 40 pixel: 14 lanterne.
- Usa
rangecon un inizio, una fine e un passo, e sostituisci la singola lanterna.
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.
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 i in range(8):
pygame.draw.circle(screen, (255, 255, 255), (40 + i * 80, 80), 5)
pygame.draw.circle(screen, (255, 160, 60), (60, 420), 8)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Tutte le lezioni di Python in una finestra di gioco
4Cicli che disegnano
Ripetere con forInizio, fine e passoUsare la variabile del cicloUn ciclo dentro un cicloContare con whileEsercitati da solo: Playground Pygame