提示コードですがレンダーバッファー関数とレンダークリアー関数はゲームループの最後と最初に置いています。
利用部のようにかなり大きい値を入れると動くのですが動きがカクカクしてしまいます。デルタタイムの設定が間違えていると思うのですがこれはなぜでしょうか?
知りたいこと
ミリ秒の整数値からfloat型のミリ秒を取得したい。
参考サイト:https://qiita.com/murati111/items/c07fbe7b0175012f549c
コンソール画面
0 0 0 0 1e-06 0 0 0 0 0 0 0 1e-06 0 1e-06 0
利用部
cpp
1 2/*################################################# 3# 更新 4###################################################*/ 5void Ball::Update() 6{ 7 //std::cout<<(float)SDLGame::GetDeltaTime()<<std::endl; 8 printf("%f\n",SDLGame::GetDeltaTime()); 9 10 position.x += SDLGame::GetDeltaTime() * 1000; 11} 12
設定部
cpp
1 2/*################################################# 3# レンダーバッファークリア 4###################################################*/ 5void SDLGame::RenderClear() 6{ 7 prevTime = SDL_GetTicks(); 8 SDL_RenderClear(render); 9} 10 11 12/*################################################# 13# デルタタイムを取得 14###################################################*/ 15float SDLGame::GetDeltaTime() 16{ 17 return deltaTime; 18} 19 20 21/*################################################# 22# レンダーバッファー 23###################################################*/ 24void SDLGame::RenderPresent() 25{ 26 deltaTime = ((float)(SDL_GetTicks() - prevTime)) / ((float)1000.0f); 27 //deltaTime = ((float)(SDL_GetTicks() - 0)); 28 29 SDL_RenderPresent(render); 30} 31