Menu
CoddyTech

צליל בעת אירוע

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

לצליל יש רגע משלו: המטבע נאסף, הדלת נפתחת, האויב נפגע. בקוד שלך כבר יש מקום לכל רגע כזה — ה־if שמשנה את המשחק כשהוא מתרחש. השמע את הצליל בתוך אותו if:

if player.colliderect(coin):
    score += 1
    coin_sound.play()
    coin.x = random.randint(20, 444)

ה־if מתקיים למשך פריים אחד בלבד, כי המטבע זז באותו פריים. לכן הצליל מתחיל פעם אחת לכל מטבע.

אם הצליל יושמע במקום אחר, הוא יאבד את הרגע שלו. בקוד הציור שמתחת ל־if score > 0: הוא יתחיל שוב בכל פריים אחרי איסוף המטבע הראשון: 60 פעמים בשנייה, זמזום אחד ארוך.

challenge icon

אתגר

קל

הריבוע הירוק אוסף מטבעות בעזרת מקשי החצים. הוסף צליל לכל מטבע:

  1. לפני הלולאה, טען את assets/sounds/coin.ogg לתוך coin_sound.
  2. השמע אותו בתוך ה־if שאוסף את המטבע, פעם אחת לכל מטבע.

נסו בעצמכם

import random
import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Coins")
clock = pygame.time.Clock()
font = pygame.font.Font(None, 32)

player = pygame.Rect(220, 160, 40, 40)
coin = pygame.Rect(100, 100, 16, 16)
score = 0

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        player.x -= 5
    if keys[pygame.K_RIGHT]:
        player.x += 5
    if keys[pygame.K_UP]:
        player.y -= 5
    if keys[pygame.K_DOWN]:
        player.y += 5
    player.clamp_ip(screen.get_rect())

    if player.colliderect(coin):
        score += 1
        coin.x = random.randint(20, 444)
        coin.y = random.randint(50, 324)

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (255, 210, 60), coin)
    pygame.draw.rect(screen, (90, 200, 120), player)
    score_text = font.render(f"Coins: {score}", True, (240, 240, 240))
    screen.blit(score_text, (10, 10))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

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

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