Menu
CoddyTech

변하는 색상

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

색상은 세 개의 숫자로 이루어져 있으므로, 변수 하나에 그중 하나를 저장할 수 있습니다. 매 프레임 변수 값을 바꾸면 화면의 색상도 바뀝니다.

glow = 0

while running:
    # 이벤트
    glow = (glow + 3) % 256
    pygame.draw.circle(screen, (255, glow, 0), (240, 180), 60)

매 프레임 초록색 성분에 3을 더하므로, 원의 색은 빨간색에서 주황색을 거쳐 노란색으로 바뀝니다.

색상의 각 성분은 0에서 255 사이의 값이어야 합니다. 256이 되면 pygame은 ValueError: invalid color 오류와 함께 중단됩니다. % 연산자는 나눗셈의 나머지를 구합니다. 256 % 256은 0이고 258 % 256은 2입니다. 따라서 (glow + 3) % 256은 255를 넘어가는 대신 0에 가까운 값부터 다시 시작하고, 원은 빨간색에서 노란색으로 계속 빛납니다.

challenge icon

챌린지

쉬움
  1. 루프 전에 glow = 0으로 설정합니다.
  2. 루프에서 그리기 전에 glow에 3을 더하고 % 256을 사용해 0부터 255 사이의 값으로 유지합니다.
  3. (255, glow, 0) 색상으로 원을 그립니다.

직접 해보기

import pygame

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

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, (255, 120, 0), (240, 180), 60)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

게임 루프의 모든 레슨

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