今日のチュートリアルでは、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
|
ここでは、ウィンドウをスムーズに動作させるために、pygame
と pygame.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.pla
yという名前の関数を追加します。
しかし、これだけでは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
最終的なコードは以下の通りです。
最終的な出力
このコードの出力は、以下のビデオに表示されています。
3分以上の動画を丸々載せているわけではありません。
音楽の演奏はバッチリ聞こえますよ
まとめ
画面にBGMを追加する方法を学びましたね。
お読みいただきありがとうございました。