여러 번 호출하기
Coddy Pygame 여정의 게임 창에서 배우는 Python 섹션에 포함된 레슨. 32개 중 23번째.
반복문에서 함수를 호출하면 패턴이 그려집니다. 반복문은 인수를 계산하고, 함수는 그림을 그립니다.
for i in range(8):
draw_star(60 + i * 70, 60 + i * 45)반복할 때마다 이전 별보다 오른쪽으로 70픽셀, 아래쪽으로 45픽셀 이동하므로 별들은 (60, 60)에서 (550, 375)까지 일직선으로 이어집니다. 70이나 45를 바꾸면 모든 별이 그에 맞춰 이동합니다.
함수를 작성할 가치가 있는 이유가 바로 이것입니다. 별을 그리는 코드는 한 번만 작성하면 됩니다. 모든 별의 모양을 바꾸고 싶다면, 광선을 더 길게 하거나 다른 색으로 바꾸는 등 함수의 본문을 수정하면 모든 호출이 새로운 별을 그립니다.
함수 이름은 함수가 하는 일을 나타내도록 짓고, 흔히 동사를 사용합니다. 예를 들어 draw_star, move_comet, reset_game처럼 짓습니다. 그러면 함수를 호출하는 줄이 문장처럼 읽힙니다.
챌린지
쉬움별을 한 줄로 그리세요. 단일 호출을 for i in range(8):로 바꾸고, draw_star(60 + i * 70, 60 + i * 45)를 호출하세요. 8개의 별은 (60, 60)에서 (550, 375)까지 이어집니다.
직접 해보기
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# 게임 루프가 시작되기 전에 여기서 필요한 것들을 설정하세요.
def draw_star(x, y):
pygame.draw.line(screen, (255, 240, 200), (x - 10, y), (x + 10, y), 2)
pygame.draw.line(screen, (255, 240, 200), (x, y - 10), (x, y + 10), 2)
pygame.draw.circle(screen, (255, 240, 200), (x, y), 4)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 프레임마다 여기서 필요한 것들을 변경하세요.
screen.fill((20, 24, 48))
# 화면을 채운 뒤 여기서 그리세요.
draw_star(60, 60)
pygame.display.flip()
clock.tick(60)
pygame.quit()
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
게임 창에서 배우는 Python의 모든 레슨
직접 연습해 보세요: Pygame 플레이그라운드