Volume Suara
Termasuk bagian Suara dan Sensasi Bermain dalam perjalanan Pygame di Coddy. Pelajaran 3 dari 23.
Setiap Sound memiliki volumenya sendiri, dari 0.0 (senyap) hingga 1.0 (sekeras suara dalam file). Sound baru dimulai pada 1.0. Ubah volumenya dengan set_volume():
step_sound.set_volume(0.3)Gunakan ini untuk menyeimbangkan game. Suara langkah kaki yang terus diputar sebaiknya pelan, sedangkan ledakan yang jarang terjadi bisa keras. Nilai di atas 1.0 dihitung sebagai 1.0, jadi set_volume(5) memutar suara dengan volume penuh, bukan lima kali lebih keras.
Layar pengaturan sering menampilkan volume dari 0 hingga 10 agar lebih mudah dibaca. Bagi dengan 10 untuk mendapatkan nilai Sound:
volume = 5
click_sound.set_volume(volume / 10)Sound mempertahankan volumenya sampai kamu mengaturnya lagi. Saat pemain mengubah volume, panggil set_volume() lagi, atau Sound akan diputar pada tingkat volume sebelumnya. get_volume() memberi tahu tingkat volume Sound saat ini.
Tantangan
MudahTombol Atas dan Bawah mengubah volume dari 0 menjadi 10, dan Spasi memutar bunyi klik agar kamu bisa mendengarnya. Buat bunyi klik mengikuti pengaturannya:
- Setelah
volume = 5, panggilclick_sound.set_volume(volume / 10). - Panggil lagi setiap kali tombol Atas atau Bawah mengubah
volume.
Coba sendiri
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()
Semua pelajaran di Suara dan Sensasi Bermain
4Guncangan Layar dan Kilatan Saat Terkena Serangan
Guncangan LayarKilatan Saat Terkena SeranganJeda BenturanJangan BerlebihanLatihan sendiri: Playground Pygame