発音のラグを減らしたい、これだとFPSが下がってしまうのが原因なのかなぁ?
発音のラグを減らしたい、これだとFPSが下がってしまうのが原因なのかなぁ?
# include <Siv3D.hpp> double pickMod(double a){ return (a - (int)a); } bool boolFlip(bool a){ return !a; } void Main() { /* 60FPSで動作するので、60F/sec = 3600F/min デバッグモード表示はShift+Dで切り替え */ //譜面クラスに書く内容 int frameCount = 0; //フレームカウント double recordFrameCount[5] = { 0, 0, 0, 0, 0 }; //フレームカウント位置記録 const int startMusicFrameCount = 285; //音源gap const int bpm = 144; const Font font(16); //デバッグ表示用 const Sound sound(L"Music/ビーネイトエルフ.mp3"); if (!sound){ return; }; const double fpb = 3600 / bpm; //frame per minitue frameCount = -1 * startMusicFrameCount; int i = 0; bool isDebugMode = false; sound.play(); while (System::Update()) { frameCount++; if ((Input::KeyShift + Input::KeyD).clicked){ isDebugMode = boolFlip(isDebugMode); } if (isDebugMode){ font.draw(Format(L"F.count:", frameCount, L" | B.count:", (frameCount / fpb), L"(fpb:", fpb, L")")); if (pickMod(frameCount / fpb) <= 0.1){ font(L"*").draw(0, 30); } else{ font(L"-").draw(0, 30); } font(pickMod(recordFrameCount[0])).draw(0, 60); font(pickMod(recordFrameCount[1])).draw(0, 90); font(pickMod(recordFrameCount[2])).draw(0, 120); font(pickMod(recordFrameCount[3])).draw(0, 150); font(pickMod(recordFrameCount[4])).draw(0, 180); if (Input::KeyK.clicked){ recordFrameCount[i % 5] = (frameCount / fpb); i++; } if (Input::KeySpace.clicked){ exit(0); } }//debugmode if (Input::KeyK.clicked){ if (pickMod(frameCount / fpb) <= 0.02 || pickMod(frameCount / fpb) >= 0.98){ //Just判定 font(L"JUST").draw(0, 0); } else if (pickMod(frameCount / fpb) <= 0.1 || pickMod(frameCount / fpb) >= 0.9){ //Great判定 font(L"Great").draw(0, 0); } else if (pickMod(frameCount / fpb) <= 0.2 || pickMod(frameCount / fpb) >= 0.8){ //Good判定 font(L"Good").draw(0, 0); } else{ //miss判定 font(L"miss").draw(0, 0); } } }//Updateループ }