サウンドのループ
Posted: 2011年7月15日(金) 23:06
特定の鳴らしている音楽のみを一定時間停止させて、その後また再開させる方法がわかりません。
DXライブラリを使っているのですがWaitTimerだと他の処理も停止してしまうのでできません。
どうしたらよいのかよろしければ教えてください
DXライブラリを使っているのですがWaitTimerだと他の処理も停止してしまうのでできません。
どうしたらよいのかよろしければ教えてください
#include <DxLib.h>
int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
ChangeWindowMode(TRUE);
DxLib_Init();
int sound = LoadSoundMem(_T("bgm.wav"));
PlaySoundMem(sound, DX_PLAYTYPE_LOOP);
int start;
while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0) {
ClearDrawScreen();
int playing = CheckSoundMem(sound); // 再生中かどうかのフラグ
int input = CheckHitKeyAll(); // キー入力があったかどうかのフラグ
// 再生中にキー入力があると一時停止
if (playing && input) {
printfDx(_T("%s\n"), _T("一時停止します"));
StopSoundMem(sound);
start = GetNowCount(); // 停止開始カウント
}
// 1秒以上停止していたら、再開
if (!playing && GetNowCount() - start >= 1000) {
printfDx(_T("%s\n"), _T("再開します"));
PlaySoundMem(sound, DX_PLAYTYPE_LOOP, FALSE);
}
}
DxLib_End();
}