Menu
CoddyTech

La nave di pattuglia

Fa parte della sezione Sprite e immagini del percorso Pygame di Coddy. Lezione 29 di 36.

È il momento di creare un gioco completo: Star Patrol. Ondate di navi nemiche scendono dall’alto. La tua nave pattuglia la parte inferiore della finestra, si muove a sinistra e a destra e spara laser verso l’alto. Distruggi ogni ondata per vincere; lascia passare tre nemici o scontrati con loro e la partita finisce.

Ogni oggetto del gioco sarà uno sprite: il giocatore, i suoi laser, i nemici e le loro esplosioni. Si comincia dal giocatore, come nel capitolo 4:

class Player(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = ship_image
        self.rect = self.image.get_rect(midbottom=(320, 470))

Carica ship_image una sola volta, dopo la finestra. Il suo update sposta il Rect con le frecce e lo mantiene all’interno della finestra. Il ciclo principale chiama player.update() e disegna la nave.

Questo capitolo sviluppa lo stesso programma lezione dopo lezione, quindi mantieni i nomi indicati dalle attività: i controlli individuano le parti del gioco tramite questi nomi.

challenge icon

Sfida

Medio
  1. Carica assets/images/ship.png in ship_image.
  2. Scrivi class Player(pygame.sprite.Sprite): immagine ship_image, Rect con il punto medio del bordo inferiore in (320, 470) e un metodo update che la sposta di 6 pixel a fotogramma con Sinistra e Destra e la mantiene entro i limiti della finestra.
  3. Crea player = Player(); a ogni fotogramma chiama player.update() e fai il blit di player.image in player.rect dopo il riempimento.

Provalo tu

import pygame

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

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

    screen.fill((12, 14, 30))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Tutte le lezioni di Sprite e immagini

Esercitati da solo: Playground Pygame