Ridimensionare un'immagine
Fa parte della sezione Sprite e immagini del percorso Pygame di Coddy. Lezione 8 di 36.
Il boss di un livello dovrebbe essere grande, mentre il contatore delle vite ha bisogno di navicelle piccole. Gli stessi file possono fare entrambe le cose: il ridimensionamento crea una copia ridimensionata.
boss = pygame.transform.scale_by(boss, 2)
icon = pygame.transform.scale(ship, (32, 32))scale_by(image, 2) moltiplica entrambi i lati per 2: il boss di 64 per 64 diventa 128 per 128. scale(image, (w, h)) lo rende esattamente di w per h pixel, anche se questo lo deforma.
Il ridimensionamento è lento rispetto a un blit e ogni nuova copia sfoca o rende un po' più spigolosi i pixel. Ridimensiona una sola volta, prima del ciclo, partendo dal file originale, e disegna la copia ridimensionata a ogni fotogramma.
Crea il Rect dopo il ridimensionamento. Un Rect creato a partire dall'immagine di 64 per 64 avrebbe le dimensioni originali e center=(320, 150) sposterebbe il boss grande fuori centro.
Sfida
Facile- Ridimensiona il boss di 2 prima del ciclo, poi crea
boss_rectdall’immagine ridimensionata, centrata in(320, 150). - Crea
icon: la nave ridimensionata a(32, 32). - Disegna
icontre volte, con l’angolo superiore sinistro in(10, 10),(50, 10)e(90, 10).
Provalo tu
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Boss Fight")
clock = pygame.time.Clock()
boss = pygame.image.load("assets/images/boss.png").convert_alpha()
boss_rect = boss.get_rect(center=(320, 150))
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(boss, boss_rect)
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