Menu
CoddyTech

len으로 세기

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

len(stars)는 리스트에 몇 개의 항목이 들어 있는지를 나타냅니다. 빈 리스트의 길이는 0입니다. 이를 사용해 개수를 표시하세요:

text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))

f-string의 중괄호 안에는 호출을 포함해 어떤 표현식이든 넣을 수 있습니다.

len으로 제한을 설정할 수도 있습니다. 자리가 있을 때만 별을 추가하세요:

if event.type == pygame.MOUSEBUTTONDOWN and len(stars) < 10:
    stars.append(event.pos)

리스트에 별이 10개 들어 있으면 조건이 거짓이 되므로 클릭해도 아무 일도 일어나지 않습니다. 화면에 표시되는 개수와 제한 모두 같은 리스트를 참조하므로 항상 일치합니다.

제한은 이벤트 루프 안에서 클릭 검사와 and로 연결됩니다. 이벤트가 클릭이고 자리가 있을 때만 append가 실행됩니다. len은 문자열에도 사용할 수 있습니다. len("Night")의 결과는 5입니다.

challenge icon

챌린지

중급

별을 세고 열 개에서 멈추세요:

  1. 초기 설정 부분에서 font = pygame.font.Font(None, 36)로 설정하세요.
  2. 그리기 부분에서 (20, 20)에 (230, 230, 240) 색상으로 f"Stars: {len(stars)}"를 표시하세요.
  3. len(stars) < 10일 때만 클릭하면 별을 추가하세요.

직접 해보기

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))
    # 화면을 채운 후 여기서 그리세요.
    for star in stars:
        pygame.draw.circle(screen, (255, 255, 255), star, 5)

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

pygame.quit()

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

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