とりあえずサウンドを鳴らすには・・・?

SIZE(20){ COLOR(#ffaa00){PlaySound関数}}1行でサウンドファイルからの音データを鳴らすことができます
ただし任意箇所にシークするなどの細かい制御ができず、SIZE(20){ COLOR(#ffaa00){複数の音を同時に鳴らせない}}のが欠点です
また、wavファイルしか再生できません
さらにファイルを開いてデータを読み込んで鳴らすという処理を毎回行うため、処理が重いです

wavファイルはプロジェクトと同じフォルダに入れてください

今回使うファイルは次のようになってます。どぞー(-ω-)つ旦
・&ref(sound.cpp);
・&ref(katana.wav);
・&ref(bomb.wav);
zipでほしい人はこちら
・&ref(sound.zip);


 // PlaySound関数にはwindows.hとwinmm.libが必要
 #include <windows.h>
 #include <tchar.h>
 #pragma comment(lib,"winmm.lib")
 
 int main(){
 
	// wavファイル読み込み、ループモード、非同期で先頭から再生(途中から再生できない)
	// SND_FILENAME オプションでファイルから再生
	// SND_ASYNCオプションで非同期再生
	// SND_LOOPオプションでループ再生
	PlaySound(_T("katana.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
 
	// main側の処理を10秒止める
	Sleep(10000);
 
	// 再生停止
	PlaySound(NULL,NULL,0);
 
	// PlaySoundは同時に複数の音を鳴らすことができない
	// 非同期モードで再生し、新しいサウンドを鳴らそうとすると再生中のサウンドが停止する
	// SND_SYNCオプションで同期再生
	PlaySound(_T("bomb.wav"),NULL,SND_FILENAME | SND_SYNC );
	PlaySound(_T("katana.wav"),NULL,SND_FILENAME | SND_SYNC );
 
	return 0;
 }

複数鳴らせないので正直このままではゲームの効果音とか鳴らすのに使い物になりませんが、
1行でサウンドを鳴らせるのはお手軽です
複数音鳴らすのは結構大変なので、もっとずっと後の回で説明します

前:DirectX講座0回
次:DirectX講座2回

#vote((^ω^)楽勝[44],(-ω-)zzZ[32],みっくみくにしてやんよ[213])
|(^ω^)楽勝|44|
|(-ω-)zzZ|32|
|みっくみくにしてやんよ|213|



トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS