Menu
CoddyTech

반짝반짝

Coddy Pygame 여정의 게임 창에서 배우는 Python 섹션에 포함된 레슨. 32개 중 30번째.

실제 별은 반짝입니다. 여기서는 각 별이 이따금 무작위로 한 프레임 동안 어두워집니다. 매 프레임마다 각 별은 1부터 30까지의 숫자를 하나 뽑고, 1이 나오면 어둡게 그려집니다:

for star in stars:
    colour = (255, 255, 255)
    if random.randint(1, 30) == 1:
        colour = (110, 120, 170)
    pygame.draw.circle(screen, colour, star, 3)

각 별마다 colour는 흰색으로 시작하고, if는 1이 나왔을 때만 값을 바꿉니다. 30프레임 중 한 프레임은 각 별마다 초당 약 두 번에 해당하며, 별마다 각자 숫자를 뽑으므로 서로 다른 순간에 반짝입니다. 이처럼 작고 불규칙한 변화가 하늘을 살아 있는 것처럼 보이게 합니다.

프로그램 맨 위에 import random을 추가하세요. 여기서는 매 프레임마다 별마다 다시 선택해야 하므로, 그리기 루프 안에서 무작위 숫자를 뽑습니다.

challenge icon

챌린지

중급

별이 반짝이게 만드세요:

  1. 맨 위에 import random을 추가하세요.
  2. 별 반복문에서 각 별의 colour를 흰색 (255, 255, 255)으로 시작하세요.
  3. random.randint(1, 30) == 1일 때 별을 어둡게 (110, 120, 170) 만드세요.
  4. colour를 사용해 별을 그리세요.

직접 해보기

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# 게임 루프가 시작되기 전에 여기에서 필요한 것들을 설정하세요.
stars = []

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        if event.type == pygame.MOUSEBUTTONDOWN:
            stars.append(event.pos)

    # 매 프레임마다 여기에서 필요한 것들을 변경하세요.

    screen.fill((20, 24, 48))
    # 화면을 채운 뒤 여기에서 그리세요.
    pygame.draw.circle(screen, (240, 230, 160), (560, 80), 40)
    pygame.draw.rect(screen, (14, 16, 30), (0, 430, 640, 50))
    for star in stars:
        pygame.draw.circle(screen, (255, 255, 255), star, 3)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

게임 창에서 배우는 Python의 모든 레슨

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