Menu
CoddyTech

별 놓기

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

마지막 네 개의 수업에서는 작은 게임 하나인 Night Sky를 만듭니다. 클릭해서 별을 놓으면 별이 반짝이고, 개수를 세는 카운터가 표시되며, 별이 스무 개가 되면 하늘이 가득 찹니다. 각 수업은 바로 앞 수업에서 작성한 코드를 바탕으로 시작합니다.

이 게임에는 이 섹션에서 배운 내용이 사용됩니다. 별은 위치 목록으로 저장하며, 게임 루프가 시작되기 전에 빈 목록으로 만듭니다. 클릭하면 해당 위치를 목록에 추가하고, for 루프는 매 프레임마다 목록에 있는 모든 별을 그립니다.

stars = []

        if event.type == pygame.MOUSEBUTTONDOWN:
            stars.append(event.pos)

    for star in stars:
        pygame.draw.circle(screen, (255, 255, 255), star, 3)

별이 위에 보이도록 달과 땅을 그린 다음에 별을 그리세요. 달 위에 놓인 별은 달 앞에 있는 것처럼 보입니다.

challenge icon

챌린지

쉬움

밤하늘을 시작해 보세요:

  1. 게임 루프 전에 stars = []를 만드세요.
  2. MOUSEBUTTONDOWN 이벤트가 발생하면 event.pos를 stars에 추가하세요.
  3. 달과 지면을 그린 후, 모든 별을 반지름이 3인 흰색 (255, 255, 255) 원으로 그리세요.

직접 해보기

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, (240, 230, 160), (560, 80), 40)
    pygame.draw.rect(screen, (14, 16, 30), (0, 430, 640, 50))

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

pygame.quit()

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

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