도형으로 만든 장면
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를 기준으로 배치되므로, 나무를 옮기려면 호출 한 곳만 바꾸면 됩니다.
함수 안에서도 순서는 여전히 중요합니다. 줄기는 원의 중심에서 시작하고 원을 두 번째로 그리므로, 원이 줄기의 윗부분을 덮습니다. 두 줄의 순서를 바꾸면 나뭇잎 사이로 줄기가 보입니다.
챌린지
쉬움draw_tree에서 줄기를 그린 다음, 수관을 그리세요. 초록색(60, 170, 90)원을(x, y)를 중심으로 반지름20으로 그립니다.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 플레이그라운드