PythonのPygameでBGMや効果音を再生する方法

スポンサーリンク

今日のチュートリアルでは、pygameを使用してウィンドウにBGMを追加する方法を紹介します。

それでは始めましょう。

スポンサーリンク

ステップ1:再生したい音楽をダウンロードする

コーディング編に進む前に、まず音楽をダウンロードする必要があります。

音楽は好きなものを選んでください。

私はとりあえず、シンプルでキャッチーなBGMを選んでみました。

これから使うBGMを追加しました。

よかったら聞いてみてください。

MP3形式しかし、pygameでBGMにmp3形式を使うと、バグが多く、音楽の代わりにキーキーと変な音が鳴ることがあります。

そこで、それを防ぐためにmp3フォーマットのファイルをpygameのウィンドウズに適した OOG フォーマットに変換します。

ファイルフォーマットのコンバーターはオンラインで見つけることができ、音楽ファイルをアップロードするだけで、あとは無料でやってくれます。

oogファイルは同じように聞こえます。

以下に私の wav 音楽ファイルを追加しましたので、確認してみてください。

WAV FORMAT## Step 2: モジュールをインポートする

どのプログラムでも、最初のステップは、必要なモジュールをインポートすることです。

そのためのコードを以下に示します。

1
2
3
import pygame
from pygame.locals import *
from pygame import mixer

ここでは、ウィンドウをスムーズに動作させるために、pygamepygame.locals モジュールをインポートしています。

そして、音楽を再生するために mixer モジュールをインポートします。

Step 3: 基本的な画面のデザインと機能を作成する

画面を作成するために、まず init 関数を使用して pygame を初期化します。

背景画像は image.load 関数で読み込みます。

そして、背景画像の配置と画面デザインの更新を行うループを実行します。

また、イベントハンドリングを使って、QUITウィンドウの機能を追加します。

最後に、quit関数を使用して、先に開始したpygameを破棄する予定です。

そのためのコードを以下に示します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pygame.init()
width = 1000
height = 500
window = pygame.display.set_mode((width,height))
bg_img = pygame.image.load('Images/bg.png')
bg_img = pygame.transform.scale(bg_img,(width,height))
 
runing = True
while runing:
    window.blit(bg_img,(0,0))
    for event in pygame.event.get():
        if event.type == QUIT:
            runing = False
    pygame.display.update()
pygame.quit()

上記のコードの出力画面は以下のように表示されます。

1
2
3
mixer.init()
mixer.music.load('Music File/bensound-summer_wav_music.wav')
mixer.music.play()

Step 4: プログラムの中でミキサーを初期化する

次のステップでは、プログラムの mixer を初期化し、music.load を使って音楽をロードします。

このとき、音楽ファイルのパスがパラメータとして渡されます。

この後、music.playという名前の関数を追加します。

しかし、これだけではBGMは始まりません。

そのためには、この後のセクションで説明するいくつかの要素をコードに追加する必要があります。

そのためのコードを以下に示します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import pygame
from pygame.locals import *
from pygame import mixer
 
pygame.init()
width = 1000
height = 500
window = pygame.display.set_mode((width,height))
bg_img = pygame.image.load('Images/bg.png')
bg_img = pygame.transform.scale(bg_img,(width,height))
 
mixer.init()
mixer.music.load('Music File/bensound-summer_wav_music.wav')
mixer.music.play()
 
runing = True
while runing:
    window.blit(bg_img,(0,0))
    for event in pygame.event.get():
        if event.type == QUIT:
            runing = False
    pygame.display.update()
pygame.quit()

Adding Background Music to the Pygame Window – Full Code

最終的なコードは以下の通りです。

Output Screen1 Bg Music Pygame
Output Screen1 Bg Music Pygame

最終的な出力

このコードの出力は、以下のビデオに表示されています。

3分以上の動画を丸々載せているわけではありません。

音楽の演奏はバッチリ聞こえますよ

まとめ

画面にBGMを追加する方法を学びましたね。

お読みいただきありがとうございました。

タイトルとURLをコピーしました