Suara saat Terjadi Peristiwa
Termasuk bagian Suara dan Sensasi Bermain dalam perjalanan Pygame di Coddy. Pelajaran 2 dari 23.
Suara muncul pada momen tertentu: koin diambil, pintu terbuka, musuh terkena serangan. Kodemu sudah memiliki tempat untuk setiap momen, yaitu if yang mengubah permainan saat momen itu terjadi. Putar suaranya di dalam if yang sama:
if player.colliderect(coin):
score += 1
coin_sound.play()
coin.x = random.randint(20, 444)if bernilai benar hanya selama satu frame, karena koin berpindah pada frame yang sama. Jadi, suara diputar sekali untuk setiap koin.
Jika diputar di tempat lain, suara tidak lagi sesuai dengan momennya. Di dalam kode penggambaran di bawah if score > 0:, suara akan diputar lagi pada setiap frame setelah koin pertama, 60 kali per detik, menghasilkan dengungan panjang.
Tantangan
MudahKotak hijau mengumpulkan koin dengan tombol panah. Beri setiap koin suara:
- Sebelum perulangan, muat
assets/sounds/coin.oggke dalamcoin_sound. - Putar suaranya di dalam
ifyang mengumpulkan koin, sekali untuk setiap koin.
Coba sendiri
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()
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Suara dan Sensasi Bermain
4Guncangan Layar dan Kilatan Saat Terkena Serangan
Guncangan LayarKilatan Saat Terkena SeranganJeda BenturanJangan BerlebihanLatihan sendiri: Playground Pygame