Menu
CoddyTech

소리 크기

Coddy Pygame 여정의 사운드와 게임의 손맛 섹션에 포함된 레슨. 23개 중 3번째.

각 사운드에는 0.0(무음)부터 1.0(파일의 최대 음량)까지 고유한 음량이 있습니다. 새 사운드는 1.0에서 시작합니다. set_volume()으로 음량을 변경하세요:

step_sound.set_volume(0.3)

게임의 음량 균형을 맞출 때 사용하세요. 항상 재생되는 발소리는 작게 하고, 드물게 들리는 폭발음은 크게 할 수 있습니다. 1.0보다 큰 값은 1.0으로 간주되므로, set_volume(5)를 사용해도 음량이 최대가 될 뿐 다섯 배 커지지는 않습니다.

설정 화면에서는 화면에서 보기 편하도록 음량을 0부터 10까지의 값으로 표시하는 경우가 많습니다. 사운드의 음량 값을 구하려면 10으로 나누세요:

volume = 5
click_sound.set_volume(volume / 10)

사운드의 음량은 다시 설정할 때까지 유지됩니다. 플레이어가 volume을 변경하면 set_volume()을 다시 호출하세요. 그렇지 않으면 사운드는 이전 음량으로 재생됩니다. get_volume()을 사용하면 현재 사운드의 음량을 알 수 있습니다.

challenge icon

챌린지

쉬움

위쪽 및 아래쪽 키를 누르면 volume이 0에서 10까지 바뀌고, 스페이스 키를 누르면 클릭 소리가 재생되어 소리를 들을 수 있습니다. 클릭 소리가 설정을 따르도록 하세요.

  1. volume = 5 다음에 click_sound.set_volume(volume / 10)을 호출하세요.
  2. 위쪽 또는 아래쪽 키를 눌러 volume이 바뀔 때마다 다시 호출하세요.

직접 해보기

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Volume")
clock = pygame.time.Clock()
font = pygame.font.Font(None, 32)

click_sound = pygame.mixer.Sound("assets/sounds/click.ogg")
volume = 5

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP and volume < 10:
                volume += 1
            elif event.key == pygame.K_DOWN and volume > 0:
                volume -= 1
            elif event.key == pygame.K_SPACE:
                click_sound.play()

    screen.fill((30, 30, 46))
    label = font.render(f"Volume: {volume}", True, (240, 240, 240))
    screen.blit(label, (40, 120))
    for i in range(10):
        color = (90, 200, 120) if i < volume else (60, 60, 80)
        pygame.draw.rect(screen, color, (40 + i * 40, 170, 32, 40))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

사운드와 게임의 손맛의 모든 레슨

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