매개변수
Coddy Pygame 여정의 게임 창에서 배우는 Python 섹션에 포함된 레슨. 32개 중 21번째.
항상 (320, 240)에 그리는 함수는 별로 쓸모가 없습니다. 매개변수를 사용하면 호출하는 쪽에서 위치를 선택할 수 있습니다. def의 괄호 안에 매개변수 이름을 지정하고, 함수 본문에서 변수처럼 사용하세요:
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)각 호출은 같은 순서로 값, 즉 인수를 전달합니다. draw_star(120, 100)은 x가 120이고 y가 100인 상태로 함수 본문을 실행합니다. draw_star(520, 90)은 다른 값을 사용해 다시 실행합니다. 정의는 하나지만, 호출하는 만큼 별을 그릴 수 있습니다.
매개변수는 함수가 실행되는 동안에만 함수 내부에 존재합니다. 함수 밖에서는 x와 y가 아무 의미가 없거나, 그 이름으로 저장한 값이 있을 뿐입니다.
챌린지
중급호출하는 쪽에서 별의 위치를 정하도록 하세요:
- 정의를
def draw_star(x, y):로 바꾸고 (x, y)를 중심으로 그리세요. 선은x - 10에서x + 10까지, 그리고y - 10에서y + 10까지 그리며, 점은(x, y)에 찍으세요. - 세 번 호출하세요: (120, 100), (320, 180), (520, 90)에서.
직접 해보기
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# 게임 루프가 시작되기 전에 여기에서 필요한 것들을 설정하세요.
def draw_star():
pygame.draw.line(screen, (255, 240, 200), (310, 240), (330, 240), 2)
pygame.draw.line(screen, (255, 240, 200), (320, 230), (320, 250), 2)
pygame.draw.circle(screen, (255, 240, 200), (320, 240), 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()
pygame.display.flip()
clock.tick(60)
pygame.quit()
게임 창에서 배우는 Python의 모든 레슨
직접 연습해 보세요: Pygame 플레이그라운드