Pyxelでは9個のサンプルが用意されています。
これらのサンプルのソースコードを理解することで、Pyxelでのゲーム開発をどのようにすれば良いのかがわかってきます。
本記事では、そのサンプルについて解説しています。
今回は、4つ目のサンプルについて解説します。
04_sound_api.pyはどんなサンプル?
04_sound_api.pyを実行すると、下の画像のようにsoundのAPIの説明画面とともにBGMが流れ始めます。
このサンプルできる操作はキーボードの数字キーを押すことで、チャンネルの操作ができます。
2を押すと、メロディー部分のみが演奏され、3を押すとベース音のみ、4を押すとドラムのみというふうになっています。
5を押すと、演奏が止まります。
04_sound_api.pyのソースコード解説
では、ソースコードの解説をしていきます。
これまで通り、全てのソースコードはここには載せないので、各自エディタで確認してください。
またこれまでに解説した内容については、割愛することがあります。
04_sound_api.pyの構成
今回のサンプルはコンストラクタ(__init__メソッド)、updateメソッド、drawメソッドの基本的なもにplay_musicメソッドがある構成になっています。
構成自体はシンプルなので、わかりやすいかと思います。
__init__メソッド(コンストラクタ)
25行目~31行目
pyxel.sound(0).set(
"e2e2c2g1 g1g1c2e2 d2d2d2g2 g2g2rr" "c2c2a1e1 e1e1a1c2 b1b1b1e2 e2e2rr",
"p",
"6",
"vffn fnff vffs vfnn",
25,
)
今回のサンプルはサウンドエディタからデータをロードするのではなく、このsound.setで音楽データを打ち込んでいます。
ここで作成したサウンドデータをplay_musicメソッドの方で呼び出して音楽再生するようになっています。
第1引数は音程になります。
"e2e2c2g1 g1g1c2e2 d2d2d2g2 g2g2rr" "c2c2a1e1 e1e1a1c2 b1b1b1e2 e2e2rr"
はフレーズになるわけですが、2文字で1つの音階を表しています。
第2引数は、音色になります。
pyxelで使用できる音色は4種類あります。
Triangle、Square、Pulse、Noiseがあり、その頭文字で設定します。
第3引数は音量です。
音量は0~7まであります。
第4引数はエフェクトです。
Pyxelで使用できるエフェクトは4種類あります。
None、Slide、Vibrato、FadeOutがあり、その頭文字で設定します。
第5引数はスピードです。
play_musicメソッド
BGM再生の制御をしているメソッドになります。
updateメソッドでキーボードのどのキーを押したかによって、再生する音楽をコントロールしています。
67行目
pyxel.play(0, [0, 1], loop=True)
第1引数は、チャネルの設定です。
第2引数は、サウンドの設定です。
ここでは、[0,1]という設定をしているので、サウンド0で作成している25行目~31行目とサウンド1で作成している33行目~39行目のデータを使用する設定になっています。
第3引数は、ループ再生の設定です。
ループ再生する場合は、このサンプルの通りloop=True
を設定する必要があります。
まとめ
今回は、サウンドのAPIのデモである04_sound_api.pyについて解説しました。
ゲームに華を添えるサウンドは大切なものです。
ぜひとも公式サイトも確認しながら、APIの使い方をマスターしましょう。
コメント