Menu
CoddyTech

טעינת צליל

חלק מהיחידה צליל ותחושת משחק במסלול ה-Pygame של Coddy. שיעור 1 מתוך 23.

pygame משמיע צלילים קצרים באמצעות pygame.mixer.Sound. נותנים לו את הנתיב לקובץ צליל ומקבלים אובייקט Sound:

jump_sound = pygame.mixer.Sound("assets/sounds/jump.ogg")

pygame.init() מפעילה את המיקסר, לכן יוצרים את אובייקטי Sound אחריה. יוצרים כל Sound פעם אחת, לפני הלולאה. הטעינה קוראת את הקובץ מהדיסק; בתוך הלולאה היא הייתה קוראת אותו 60 פעמים בשנייה.

כשמגיע הרגע, קוראים ל־play():

jump_sound.play()

play() מפעילה את הצליל ומחזירה שליטה מיד. המשחק ממשיך לרוץ בזמן ששומעים אותו, ואפשר להשמיע את אותו Sound שוב לפני שהוא מסתיים.

בתיקייה assets/sounds/ נמצאים הצלילים שאפשר להשתמש בהם: קפיצה, מטבע, שדרוג, לייזר, פיצוץ, פגיעה ועוד; כולם קובצי .ogg. פותחים את לשונית Assets לצד המשחק כדי לשמוע אותם.

challenge icon

אתגר

קל

הריבוע הירוק קופץ כשלוחצים על מקש הרווח. גרמו לו להשמיע צליל:

  1. לפני הלולאה, טענו את assets/sounds/jump.ogg לתוך jump_sound.
  2. קראו ל־jump_sound.play() במקום שבו הקפיצה מתחילה, לצד speed_y = -14.

נסו בעצמכם

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Jump")
clock = pygame.time.Clock()

player = pygame.Rect(220, 280, 40, 40)
speed_y = 0

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_SPACE and player.bottom == 320:
                speed_y = -14

    speed_y += 1
    player.y += speed_y
    if player.bottom > 320:
        player.bottom = 320
        speed_y = 0

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (80, 80, 100), (0, 320, 480, 40))
    pygame.draw.rect(screen, (90, 200, 120), player)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

כל השיעורים ביחידה צליל ותחושת משחק

תרגלו בעצמכם: Pygame אונליין