Tải âm thanh
Thuộc phần Âm thanh và cảm giác chơi trong hành trình Pygame của Coddy. Bài học 1 trên 23.
pygame phát các âm thanh ngắn qua pygame.mixer.Sound. Truyền đường dẫn đến tệp âm thanh để tạo một đối tượng Sound:
jump_sound = pygame.mixer.Sound("assets/sounds/jump.ogg")pygame.init() khởi động bộ trộn âm thanh, vì vậy hãy tạo các Sound sau khi gọi hàm này. Tạo mỗi Sound một lần, trước vòng lặp. Việc tải sẽ đọc tệp từ ổ đĩa; nếu đặt trong vòng lặp, chương trình sẽ đọc tệp 60 lần mỗi giây.
Đến lúc phát âm thanh, hãy gọi play():
jump_sound.play()play() bắt đầu phát âm thanh rồi trả về ngay. Trò chơi vẫn tiếp tục chạy trong khi bạn nghe âm thanh, và cùng một Sound có thể phát lại trước khi âm thanh kết thúc.
Thư mục assets/sounds/ chứa các âm thanh bạn có thể dùng: nhảy, xu, tăng sức mạnh, tia laser, vụ nổ, va chạm và nhiều âm thanh khác, tất cả đều là tệp .ogg. Mở thẻ Assets bên cạnh trò chơi để nghe thử.
Thử thách
DễPhát âm thanh khi hình vuông màu xanh lá nhảy.
- Trước vòng lặp, tải
assets/sounds/jump.oggvàojump_sound. - Gọi
jump_sound.play()tại nơi bắt đầu cú nhảy, bên cạnhspeed_y = -14.
Nhấn Chơi rồi nhấn phím cách: bạn sẽ nghe thấy âm thanh khi nhảy. Sau đó, nhấn Kiểm tra.
Tự làm thử
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()
Tất cả bài học trong Âm thanh và cảm giác chơi
4Rung màn hình và chớp sáng khi trúng đòn
Rung màn hìnhChớp sáng khi trúng đònKhựng hình khi trúng đònGiữ hiệu ứng tinh tếTự luyện tập: Playground Pygame