cocos2d-xのSimpleAudioEngineやexperimental::AudioEngineで音声ファイルを鳴らすときは、アプリ起動時等にpreloadしてから使う。
音声ファイルがたくさんある場合は、それらのファイル名を全て指定するのが面倒だし、
ファイルを追加、削除、リネームした場合に
ファイル名を間違える可能性がある。
音声ファイル名を自動で取得して、preloadするようにしたい。
Resourcesフォルダ内に、soundNames.txtという空のテキストファイルを追加する。
Resources/seフォルダ内のmp3ファイル名一覧を取得して、soundNames.txtに書き込む。
Target->Build Phasesを開き、
左上の+ボタンを押してNew Run Script Phaseを追加する。
このRun Script PhaseはCopy Bundle Resourcesの上に移動する。
これで、ビルドした時にsoundNames.txtに音声ファイル名が書き込まれる。
あとは、アプリ起動時にsoundNames.txtから読み込んだファイル名を指定してpreloadする。
このプロジェクトではRRGSoundManagerというクラスで
音声を扱っているので、全ての音声ファイルをpreloadするメソッドを追加する。
RRGSoundManager.h
RRGSoundManager.cpp
preloadAllメソッドを起動時に呼ぶ。
AppDelegate.cpp