Âm lượng
Thuộc phần Âm thanh và cảm giác chơi trong hành trình Pygame của Coddy. Bài học 3 trên 23.
Mỗi Âm thanh có âm lượng riêng, từ 0.0 (im lặng) đến 1.0 (to bằng âm lượng của tệp). Âm thanh mới bắt đầu ở mức 1.0. Thay đổi âm lượng bằng set_volume():
step_sound.set_volume(0.3)Dùng cách này để cân bằng âm thanh trong trò chơi. Tiếng bước chân phát liên tục nên nhỏ; tiếng nổ hiếm khi xuất hiện có thể to. Giá trị lớn hơn 1.0 được tính là 1.0, nên set_volume(5) phát ở âm lượng tối đa, không phải to gấp năm lần.
Màn hình cài đặt thường hiển thị âm lượng từ 0 đến 10 để dễ đọc hơn. Chia cho 10 để lấy giá trị âm lượng của Âm thanh:
volume = 5
click_sound.set_volume(volume / 10)Âm thanh giữ nguyên âm lượng cho đến khi bạn đặt lại. Khi người chơi thay đổi volume, hãy gọi lại set_volume(), nếu không Âm thanh sẽ phát ở mức cũ. get_volume() cho bạn biết mức âm lượng hiện tại của một Âm thanh.
Thử thách
DễĐiều chỉnh âm lượng tiếng nhấp theo cài đặt âm lượng.
- Sau
volume = 5, hãy gọiclick_sound.set_volume(volume / 10). - Gọi hàm này mỗi lần phím Up hoặc Down làm thay đổi
volume.
Nhấn Chơi, nhấn Down hai lần, rồi nhấn Space: tiếng nhấp sẽ nhỏ hơn. Sau đó nhấn Kiểm tra.
Tự làm thử
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()
Tất cả bài học trong Âm thanh và cảm giác chơi
4Rung màn hình và chớp sáng khi trúng đòn
Rung màn hìnhChớp sáng khi trúng đònKhựng hình khi trúng đònGiữ hiệu ứng tinh tếTự luyện tập: Playground Pygame