טעינת צליל
חלק מהיחידה צליל ותחושת משחק במסלול ה-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 לצד המשחק כדי לשמוע אותם.
אתגר
קלהריבוע הירוק קופץ כשלוחצים על מקש הרווח. גרמו לו להשמיע צליל:
- לפני הלולאה, טענו את
assets/sounds/jump.oggלתוךjump_sound. - קראו ל־
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 אונליין