Ripetere uno sfondo
Fa parte della sezione Sprite e immagini del percorso Pygame di Coddy. Lezione 4 di 36.
Un colore uniforme rende il cielo monotono. assets/backgrounds/sky.png è un'immagine di 72 per 72 pixel fatta per essere ripetuta: affianca delle copie e i bordi combaciano senza lasciare giunture. Coprire la finestra con copie di una stessa piccola immagine si chiama tassellazione.
Due cicli forniscono ogni angolo in alto a sinistra, una riga della griglia alla volta:
for x in range(0, 640, 72):
for y in range(0, 480, 72):
screen.blit(tile, (x, y))range(0, 640, 72) dà 0, 72, 144 e così via fino a 576. La copia a 576 arriva a 648, oltre il bordo: pygame disegna la parte all'interno della finestra e salta il resto, quindi l'ultima colonna viene tagliata nettamente.
Le tessere coprono tutta la finestra, quindi sostituiscono screen.fill: disegnale per prime, poi disegna tutto il resto sopra. Questa immagine non ha pixel trasparenti, quindi caricala con .convert(), la versione di convert_alpha() per le immagini opache.
Sfida
Facile- Dopo
set_mode, caricaassets/backgrounds/sky.pngcon.convert()in una variabile chiamatatile. - Sostituisci
screen.fill(...)con i due cicli che disegnanotilein ogni posizione(x, y), con x inrange(0, 640, 72)e y inrange(0, 480, 72). - Continua a disegnare la nave dopo le tessere.
Provalo tu
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Sky Tiles")
clock = pygame.time.Clock()
ship = pygame.image.load("assets/images/ship.png").convert_alpha()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((20, 22, 40))
screen.blit(ship, (288, 360))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Tutte le lezioni di Sprite e immagini
1Caricare immagini
Caricare un'immaginePosizionarla con un rettangoloSpostare l'immagineRipetere uno sfondoPixel trasparenti2Ruota, capovolgi, ridimensiona
Ruotare attorno al centroRivolgiti nella direzione in cui voliRidimensionare un'immagineRuotare dall'originale3Classi per gli oggetti del gioco
La tua prima classeMetodiSelf è l’oggettoUna lista di oggettiOggetti con immaginiUna sottoclasse6Animazione con gli sprite sheet
Ritagliare uno sprite sheetUn contatore di frameAnimare con il tempoUn’esplosione a riproduzione singolaEsercitati da solo: Playground Pygame