for문으로 반복하기
Coddy Pygame 여정의 게임 창에서 배우는 Python 섹션에 포함된 레슨. 32개 중 15번째.
for 반복문은 주어진 각 값에 대해 한 번씩 줄들을 반복 실행합니다.
for i in range(8):
pygame.draw.circle(screen, (255, 255, 255), (40 + i * 80, 80), 5)range(8)은 0부터 시작해 8 직전에서 멈추는 숫자 0, 1, 2 등을 제공하므로, 숫자는 모두 여덟 개입니다. 반복문은 각 숫자를 차례대로 i에 저장하고 들여쓰기된 줄들을 실행합니다. 따라서 첫 번째 별은 x 좌표 40에 있고, 다음 별은 120, 그다음은 200에 있으며, 이런 식으로 600까지 이어집니다.
if와 마찬가지로 들여쓰기된 줄들은 반복문의 본문입니다. 본문 다음에 바깥쪽 들여쓰기 수준으로 돌아오는 첫 번째 줄은 반복문이 끝난 뒤 한 번 실행됩니다.
이 반복문은 게임 루프의 그리기 부분에 있으므로, 매 프레임마다 별 여덟 개를 모두 다시 그립니다. 반복문이 짧고 즉시 끝나므로 프레임도 여전히 제시간에 끝납니다.
i는 반복 횟수를 세는 변수에 흔히 사용하는 이름이지만, 어떤 이름이든 사용할 수 있습니다. for n in range(8):도 똑같이 셉니다.
챌린지
쉬움단일 별을 range(8)을 순회하는 for 루프로 바꾸어, (40 + i * 80, 80) 위치에 반지름이 5인 흰색 별 8개를 그리세요.
직접 해보기
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# 게임 루프가 시작되기 전에 여기서 필요한 것들을 설정하세요.
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 매 프레임마다 여기서 필요한 것들을 변경하세요.
screen.fill((20, 24, 48))
# 화면을 채운 후 여기서 그림을 그리세요.
pygame.draw.circle(screen, (255, 255, 255), (40, 80), 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
게임 창에서 배우는 Python의 모든 레슨
직접 연습해 보세요: Pygame 플레이그라운드