Cách thêm hiệu ứng âm thanh và âm nhạc trong Pygame

Cách thêm hiệu ứng âm thanh và âm nhạc trong Pygame

Chia sẻ kiến thức 03/06/2023

Âm nhạc và hiệu ứng âm thanh là một phần quan trọng của trải nghiệm chơi game, vì vậy Pygame cho phép bạn thêm chúng vào game của mình. Cùng FUNiX tìm hiểu về cách thêm nhạc nền và phát hiệu ứng âm thanh trong game. Ngoài ra, bạn cũng sẽ biết cách thực hiện các thao tác cơ bản như lặp lại và điều chỉnh âm lượng.

Tạo một game đơn giản

Bắt đầu bằng cách tạo một game đơn giản trong đó người chơi có thể di chuyển sang trái và phải. Để tạo game này, hãy cài đặt mô-đun Pygame bằng cách sử dụng pip:

 
pip install pygame

Nhập và khởi tạo mô-đun Pygame và tạo một cửa sổ có kích thước 500×500 với một chú thích (caption). Sau đó, khởi tạo các biến x, y, width, height và vel (vận tốc) cho người chơi. 

import pygame

pygame.init()

window = pygame.display.set_mode((500,500))

pygame.display.set_caption("Simple Game")

x = 50
y = 50
width = 40
height = 60
vel = 5

run = True

Sau đó, tạo một vòng lặp while chạy cho đến khi bạn đóng cửa sổ game. Kiểm tra đầu vào bàn phím bằng phương pháp pygame.key.get_press(). Giảm hoặc tăng tọa độ x nếu người dùng nhấn phím mũi tên trái hoặc phải. Sau đó, vẽ một hình chữ nhật với tọa độ đã định và cập nhật màn hình.

while run:
    pygame.time.delay(100)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    keys = pygame.key.get_pressed()

    if keys[pygame.K_LEFT]:
        x -= vel

    if keys[pygame.K_RIGHT]:
        x += vel

    window.fill((0,0,0))
    pygame.draw.rect(window, (255,0,0), (x, y, width, height))
    pygame.display.update()

pygame.quit()

Thêm nhạc nền bằng mô-đun Mixer

Thêm nhạc nền vào game là một quy trình đơn giản với mô-đun Mixer của Pygame. Bắt đầu bằng cách tạo một đối tượng nhạc và tải tệp nhạc bạn muốn. Sau đó, bạn sẽ có thể điều chỉnh âm lượng trước khi phát. Đây là một ví dụ:

pygame.mixer.music.load("bgmusic.wav")
pygame.mixer.music.set_volume(0.3)
pygame.mixer.music.play()

Thêm hiệu ứng âm thanh bằng Mô-đun simpleaudio

Bạn cũng có thể thêm hiệu ứng âm thanh vào game bằng mô-đun simpleaudio. Để cài đặt mô-đun, gõ lệnh này:

pip install simpleaudio

Để bắt đầu, hãy nhập mô-đun simpleaudio và tạo WaveObject từ tệp âm thanh.

 
import simpleaudio as sa
sound = sa.WaveObject.from_wave_file('sound.wav')

Trong các kiểm tra hiện có cho các lần nhấn mũi tên, hãy gọi phương thức play() để phát âm thanh khi nhân vật di chuyển sang trái hay phải:

if keys[pygame.K_LEFT]:
    x -= vel
    play = sound.play()

if keys[pygame.K_RIGHT]:
    x += vel
    play = sound.play()

Các tính năng bổ sung như lặp nhạc và điều chỉnh âm lượng

Bạn cũng có thể triển khai các hiệu ứng cơ bản như lặp nhạc với hàm play() và điều chỉnh âm lượng với set_volume(). Hàm set_volume() nhận giá trị float từ 0 đến 1 để xác định âm lượng của nhạc. Hàm play() nhận một đối số chỉ định số lần lặp lại bản nhạc. Bằng cách chuyển -1 làm đối số, bạn có thể yêu cầu nó lặp lại nhạc.

pygame.mixer.music.load("bgmusic.wav")
pygame.mixer.music.set_volume(0.3)
pygame.mixer.music.play(-1)

sound = sa.WaveObject.from_wave_file('sound.wav')

Thêm hai câu lệnh if để kiểm tra xem người dùng có nhấn phím mũi tên lên hoặc xuống hay không. Đặt âm lượng của nhạc thành 1,0 nếu họ nhấn phím mũi tên lên và 0,0 nếu họ nhấn phím mũi tên xuống.

if keys[pygame.K_UP]:
    pygame.mixer.music.set_volume(1.0)

if keys[pygame.K_DOWN]:
    pygame.mixer.music.set_volume(0.0)

Các phương pháp khác để thêm nhạc và hiệu ứng âm thanh

Bạn cũng có thể sử dụng các phương pháp khác để thêm nhạc và hiệu ứng âm thanh, ví dụ như mô-đun pyglet. Dưới đây là đoạn code:

import pyglet

music = pyglet.media.load("bgmusic.wav")
music.play()

sound = pyglet.media.load("sound.wav")
sound.play()

Các mô-đun của bên thứ ba như pyglet cung cấp một cách hiệu quả hơn để thêm nhạc và hiệu ứng âm thanh.

Bạn có thể tìm thấy tất cả code từ các ví dụ trong kho lưu trữ GitHub này .

Tăng mức độ tương tác của người dùng với âm nhạc

Bạn có thể sử dụng âm nhạc và hiệu ứng âm thanh để tăng mức độ tương tác của người dùng với game của mình. Âm nhạc và hiệu ứng âm thanh có thể tạo thêm cảm giác đắm chìm, giúp game trở nên thú vị hơn nhiều. 

Tìm hiểu các khóa học lập trình của FUNiX tại đây:

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/pygame-add-sound-effects-music/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
Chat với FUNiX GPT ×

yêu cầu gọi lại

error: Content is protected !!