Menu
CoddyTech

도형으로 만든 장면

Coddy Pygame 여정의 게임 루프 섹션에 포함된 레슨. 32개 중 11번째.

게임 속 그림은 대개 여러 개의 작은 도형으로 이루어져 있습니다. 여기서 나무는 위에 초록색 원이 있는 갈색 줄기입니다. 몇 그루를 그리면 숲이 됩니다.

같은 도형 그룹이 한 번 이상 나타나면 위치를 받는 함수에 넣으세요. 호출할 때마다 나무 한 그루를 그립니다.

def draw_tree(x, y):
    pygame.draw.rect(screen, (120, 80, 40), (x - 5, y, 10, 30))
    pygame.draw.circle(screen, (60, 170, 90), (x, y), 20)

draw_tree(80, 250)
draw_tree(240, 250)

함수 안의 모든 도형은 x와 y를 기준으로 배치되므로, 나무를 옮기려면 호출 한 곳만 바꾸면 됩니다.

함수 안에서도 순서는 여전히 중요합니다. 줄기는 원의 중심에서 시작하고 원을 두 번째로 그리므로, 원이 줄기의 윗부분을 덮습니다. 두 줄의 순서를 바꾸면 나뭇잎 사이로 줄기가 보입니다.

challenge icon

챌린지

쉬움
  1. draw_tree에서 줄기를 그린 다음, 수관을 그리세요. 초록색 (60, 170, 90) 원을 (x, y)를 중심으로 반지름 20으로 그립니다.
  2. draw_tree(80, 250) 아래에서 이 함수를 두 번 더 호출해 (240, 250)과 (400, 250) 위치에 나무를 그리세요.

직접 해보기

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Forest")
clock = pygame.time.Clock()


def draw_tree(x, y):
    pygame.draw.rect(screen, (120, 80, 40), (x - 5, y, 10, 30))


running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((30, 30, 46))
    pygame.draw.circle(screen, (240, 240, 210), (70, 60), 24)
    pygame.draw.rect(screen, (40, 90, 50), (0, 280, 480, 80))
    draw_tree(80, 250)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

게임 루프의 모든 레슨

직접 연습해 보세요: Pygame 플레이그라운드