Muoviti a ogni frame
Fa parte della sezione Python in una finestra di gioco del percorso Pygame di Coddy. Lezione 7 di 32.
Il ciclo di gioco viene eseguito 60 volte al secondo, quindi una riga nella parte "Change things here" viene eseguita una volta per fotogramma. Usala per modificare una variabile di poco ogni volta:
comet_x = comet_x + 2Leggila da destra: prendi il valore in comet_x, aggiungi 2 e memorizza il risultato di nuovo in comet_x. Se conteneva 40, ora contiene 42. Nel fotogramma successivo diventa 44, poi 46.
La cometa viene disegnata in corrispondenza di comet_x a ogni fotogramma, quindi ogni fotogramma la mostra 2 pixel più a destra: 120 pixel al secondo. È così che si muove tutto in un gioco: un numero che cambia di poco a ogni fotogramma.
comet_x = 40 si trova nella parte di configurazione, dove viene eseguita una volta. All'interno del ciclo imposterebbe la cometa di nuovo a 40 a ogni fotogramma, e la cometa resterebbe ferma.
Python ha una forma abbreviata: comet_x += 2 fa la stessa cosa.
Sfida
FacileFai volare la cometa: nella parte # Change things here, once a frame., aggiungi 2 a comet_x a ogni fotogramma, così si sposta di 2 pixel verso destra per fotogramma.
Provalo tu
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Imposta tutto qui, prima del ciclo di gioco.
moon_x = 160
moon_y = 120
comet_x = 40
comet_y = 200
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.
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
2Numeri e variabili
Dai un nome a un valoreFai i calcoliMuoviti a ogni frameParole sullo schermoNumeri interi e decimaliEsercitati da solo: Playground Pygame