SDL 帧速率上限实施
SDL FrameRate cap implementation
我是游戏开发的新手,我已经使用 SDL2 制作了一些程序。帧速率不是什么大问题,因为我从未打算发布这些程序,只是使用SDL_RENDER_PRESENTVSYNC将帧速率限制为 60(显示器的刷新率(。现在我想制作一个可以发送给朋友的应用程序,我想知道我的帧速率实现是否好。
unsigned int a = SDL_GetTicks();
unsigned int b = SDL_GetTicks();
double delta = 0;
while (running)
{
a = SDL_GetTicks();
delta += a - b;
if (delta > 1000/60.0)
{
std::cout << "fps: " << 1000 / delta << std::endl;
Update();
Render();
delta = 0;
}
b = SDL_GetTicks();
}
我有一种很好的感觉,我已经把我的计算搞砸了,但我在网上找到的许多其他实现通常看起来很冗长。如果可能的话,我希望将帧帽实现保持在游戏循环中并尽可能简单。任何帮助表示赞赏!
您应该将行b = SDL_GetTicks();
放在if
语句内和Update();
之前。delta = a - b
而不是delta += a - b
. 您也可以使用b=a
而不是调用SDL_GetTicks()
函数。
while (running)
{
a = SDL_GetTicks();
delta = a - b;
if (delta > 1000/60.0)
{
std::cout << "fps: " << 1000 / delta << std::endl;
b = a;
Update();
Render();
}
}
相关文章:
- 使用专用显卡进行 OpenGL 渲染时帧速率较低
- 在打开多个其他窗口时使用全屏窗口时帧速率非常低
- 如何在IQualProp::get_AvgFrameRate中重置帧速率?
- 如何在不同的线程中保持一定的帧速率
- 根据帧速率缩放/缩小数字
- 将Kinect v2帧速率(rgb、深度、骨架)设置为每秒25帧
- 直接显示返回错误的帧速率 FPS
- SDL 帧速率上限实施
- 在 OpenGL 中,在保持良好帧速率的同时,VBO 中有多少个顶点的好目标是什么
- 视频流控制帧速率x264
- 使用C (Linux)更改BlueFox3相机的流帧速率
- EDSDK 捕获高帧速率
- OPENCV C 多线程以改善帧速率
- SDL 2.0 中是否内置了帧速率上限
- OpenGL:在立方体内部时帧速率直线下降
- 使用背景扣除MOG2时,帧速率下降
- 设置帧速率?这是个好主意吗
- 为什么我的SDL 2应用程序中的帧速率减半,除非我在某个位置移动鼠标
- 按住该键时,C++SDL帧速率会下降
- SDL C++帧速率计数器