音楽再生用のmidiファイル(.mid)をループ再生するプログラムで
曲がループ再生する時に、プログラムの進行が一瞬とまってしまいます。
以前にも同様の質問があり修整されていたと思いましたが
最新版でも同じ症状でしたので質問してみました。
簡易的なmidi再生とモデル描画サンプルです
#include "DxLib.h"
int ShowWindow(HWND hwnd,LPCSTR Filter,char *FileName,DWORD Flags){
OPENFILENAME OFN;
ZeroMemory(&OFN,sizeof(OPENFILENAME));
OFN.lStructSize = sizeof(OPENFILENAME);
OFN.hwndOwner = hwnd;
OFN.lpstrFilter =Filter;
OFN.lpstrFile =FileName;
OFN.nMaxFile = MAX_PATH*2;
OFN.Flags = Flags;
OFN.lpstrTitle = "midファイルを開く";
return (GetSaveFileName(&OFN));
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
char FileName[MAX_PATH * 2];
ZeroMemory(FileName, MAX_PATH * 2);
ChangeWindowMode(TRUE);
if( DxLib_Init() == -1 ) return -1 ;
int i=0;
int ModelHandle=MV1LoadModel( ".\\DxChara.x" ) ;
MV1SetPosition( ModelHandle, VGet( 320.0f, 0.0f, 600.0f ) ) ;
ShowWindow(GetMainWindowHandle(), "*.mid", FileName, 0);
PlayMusic( FileName, DX_PLAYTYPE_LOOP );
SetDrawScreen( DX_SCREEN_BACK ) ;
while( ProcessMessage() == 0 ) {
ClearDrawScreen() ;
MV1SetRotationXYZ(ModelHandle,VGet(0.0f,float(i)*0.05f,0.0f));
MV1DrawModel(ModelHandle);
DrawFormatString( 0, 0, GetColor( 255,255,255 ), "フレーム:%4i ", i ) ;
ScreenFlip() ;
i++;
}
DxLib_End();
return 0;
}