이미지 크기 조절하기
Coddy Pygame 여정의 스프라이트와 이미지 섹션에 포함된 레슨. 36개 중 8번째.
레벨의 보스는 크게 보여야 하고, 목숨 표시기에는 작은 함선이 필요합니다. 같은 파일로 두 가지를 모두 만들 수 있습니다. 크기 조정으로 크기가 바뀐 사본을 만들면 됩니다.
boss = pygame.transform.scale_by(boss, 2)
icon = pygame.transform.scale(ship, (32, 32))scale_by(image, 2)는 가로와 세로를 모두 2배로 늘립니다. 64 x 64 크기의 보스는 128 x 128이 됩니다. scale(image, (w, h))는 늘어나더라도 정확히 w x h 픽셀 크기로 만듭니다.
크기 조정은 blit보다 느리고, 새 사본을 만들 때마다 픽셀이 조금씩 더 흐릿해지거나 각져 보입니다. 루프가 시작되기 전에 원본 파일에서 한 번만 크기를 조정하고, 매 프레임 크기가 조정된 사본을 그리세요.
크기를 조정한 다음 Rect를 만드세요. 64 x 64 그림으로 만든 Rect는 이전 크기 그대로이고, center=(320, 150)을 사용하면 큰 보스가 중앙에서 벗어나게 됩니다.
챌린지
쉬움- 루프 전에 보스를 2배로 확대하고, 확대된 이미지를 사용해 중심이
(320, 150)에 오도록boss_rect를 만드세요. - 배를
(32, 32)크기로 축소한icon을 만드세요. icon을 세 번 그리세요. 왼쪽 위 위치는 각각(10, 10),(50, 10),(90, 10)입니다.
직접 해보기
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()
스프라이트와 이미지의 모든 레슨
직접 연습해 보세요: Pygame 플레이그라운드