Menu
CoddyTech

이미지 크기 조절하기

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)을 사용하면 큰 보스가 중앙에서 벗어나게 됩니다.

challenge icon

챌린지

쉬움
  1. 루프 전에 보스를 2배로 확대하고, 확대된 이미지를 사용해 중심이 (320, 150)에 오도록 boss_rect를 만드세요.
  2. 배를 (32, 32) 크기로 축소한 icon을 만드세요.
  3. 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 플레이그라운드