cocos2d-x 勉強第5回「サウンドを鳴らしてみる」
今回の目標
いずれ弊社に発注されるであろう、iPhone向け初音ミクゲームの開発の前準備として、サウンドくらい鳴らせないようじゃお話になりません。
ここは、サウンドを鳴らさせたら世界一、というくらいのサウンド鳴らし力1を身につけておく必要があります。
作業領域の準備
前回の作業領域をそのまま活用したいと思います。
- (前々回の記事) cocos2d-x 勉強第3回「タップ処理を実装してみる」
- (前回の記事) cocos2d-x 勉強第4回「ドラッグ&ドロップ」
- ソースコード
下準備、下調べ
BGMで活用するのはこのサウンドで
昔の友だちとも笑顔で会えたらいいよね!
公式ドキュメント
Chapter 6 - How to Play Music and Sound Effect
ググってみたら、公式ドキュメントがヒット。
それにしてもDenshion
って…。。。
このページにpew-pew-lei.wav
という効果音らしきファイルが添付されておるではないか。これは「自由に使っていいぞ」というメッセージと解釈した!
さっそく組み込んでみる
BGMの組み込み
とりあえず、シーンが読み込まれたらそれに伴ってサウンドが再生されるように調整したいと思います。
Classes/HelloWorldScene.cpp@diff
virtual void playBackgroundMusic ( const char * pszFilePath, bool bLoop = false )
Play background music.
- pszFilePath: ファイルパスか
FileName of T_SoundResInfo
(なんだろこれ) - bLoop: ループするかどうか
効果音の組み込み
そもそも「BGM」と「効果音」の違いってなんだろう?
BGMは複数シーンで重複再生してもどれか一つしか再生できなくて、効果音は重複再生可能、みたいな認識でいいんですかね…?
ドラッグ、ドロップそれぞれのタイミングで効果音を鳴らすように調整してみることにします。
Classes/HelloWorldScene.cpp@diff
virtual unsigned int playEffect ( const char * pszFilePath, bool bLoop = false, float pitch = 1.0f, float pan = 0.0f, float gain = 1.0f )
Play sound effect with a file path, pitch, pan and gain.
- pszFilePath: ファイルパス
- bLoop: ループするかどうか(効果音普通しないよね)
- pitch: なんだろう
- pan: 左右のスピーカーの出力バランス[-1..1](-1が左なり)
- gain: ボリューム(?)
動作イメージ
※音が出ます
よし、世界一!
次回に向けて
次回は「動画の再生」に関してやってみたいなーと思います。
そもそもできるのか!という感じですが。
今回のソースコード
https://github.com/8823-scholar/cocos2d-x-study/tree/e36e4ab625d64ccef575e8630f4fc9c0229e4620/study003taptaptap
-
そんなものがあるのか不明ですが ↩