発音のラグを減らしたい、これだと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ループ
}