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

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

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

今回使うファイルは次のようになってます。どぞー(-ω-)つ旦
filesound.cpp
filekatana.wav
filebomb.wav
zipでほしい人はこちら
filesound.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回

選択肢 投票
(^ω^)楽勝 17  
(-ω-)zzZ 16  
みっくみくにしてやんよ 129  

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS