עוצמת הקול
חלק מהיחידה צליל ותחושת משחק במסלול ה-Pygame של Coddy. שיעור 3 מתוך 23.
לכל צליל יש עוצמת קול משלו, מ־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() מחזירה את עוצמת הקול הנוכחית של צליל.
אתגר
קלהמקשים Up ו־Down משנים את volume מ־0 ל־10, ומקש הרווח משמיע את הצליל כדי שתוכלו לשמוע אותו. התאימו את הצליל להגדרה:
- אחרי
volume = 5, קראו ל־click_sound.set_volume(volume / 10). - קראו לו שוב בכל פעם שהמקשים Up או Down משנים את
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 אונליין