Redimensionar uma imagem
Parte da seção Sprites e imagens do Journey de Pygame da Coddy. Lição 8 de 36.
O chefe de uma fase deve parecer grande, e um contador de vidas precisa de naves pequenas. Os mesmos arquivos podem fazer as duas coisas: a escala cria uma cópia redimensionada.
boss = pygame.transform.scale_by(boss, 2)
icon = pygame.transform.scale(ship, (32, 32))scale_by(image, 2) multiplica os dois lados por 2: o chefe de 64 por 64 passa a ter 128 por 128. scale(image, (w, h)) deixa a imagem exatamente com w por h pixels, mesmo que isso a estique.
O redimensionamento é lento em comparação com um blit, e cada nova cópia deixa os pixels um pouco mais borrados ou serrilhados. Redimensione uma vez, antes do loop, a partir do arquivo original, e desenhe a cópia redimensionada a cada quadro.
Crie o Rect depois de redimensionar. Um Rect criado a partir da imagem de 64 por 64 teria o tamanho antigo, e center=(320, 150) deixaria o chefe grande fora do centro.
Desafio
Fácil- Aumente o tamanho do chefe em 2 antes do loop e, em seguida, crie
boss_recta partir da imagem redimensionada, centralizado em(320, 150). - Crie
icon: a nave redimensionada para(32, 32). - Desenhe
icontrês vezes, com o canto superior esquerdo em(10, 10),(50, 10)e(90, 10).
Experimente você mesmo
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()
Todas as lições de Sprites e imagens
1Carregando imagens
Carregue uma imagemPosicione-a com um RectMova a imagemLadrilhe o plano de fundoPixels transparentes2Girar, Inverter, Redimensionar
Girar em torno do centroFicar de frente para a direção do vooRedimensionar uma imagemGirar a partir do original3Classes para Objetos de Jogos
Sua primeira classeMétodosSelf é o objetoUma lista de objetosObjetos com imagensUma subclasse6Animação com Sprite Sheets
Recorte uma Sprite SheetUm contador de quadrosAnime com o tempoUma explosão de disparo únicoPratique por conta própria: Playground de Pygame