即使使用 DeltaTime,C++ Raylib 在不同的 FPS 下也有不同的移动速度
Posted
技术标签:
【中文标题】即使使用 DeltaTime,C++ Raylib 在不同的 FPS 下也有不同的移动速度【英文标题】:C++ Raylib Different Movement Speed at differents FPS even with DeltaTime 【发布时间】:2020-10-18 20:42:32 【问题描述】:现在我尝试用 raylib 和 c++ 制作一个小游戏。 现在我只有一个小立方体和一个普通的窗口,角落里有 FPS。 因为我不想使用 SetTargetFPS() 我尝试实现 deltaTime。
现在我也在计算它,它工作正常,当 FPS 稳定时,例如: 立方体以稳定的 200 FPS 移动的速度与稳定的 60 FPS 一样快,但是当我摆脱 SetTargetFPS() 时,我的 FPS 不稳定并且在 2000FPS 和 1000FPS 之间跳跃,移动速度不好。
我这样计算 deltaTime:
oldTime = newTime;
newTime = GetTime();
deltaTime = (newTime - oldTime) * 500;
这也有效,我在 sma FPS 上的数字非常相似。
这就是我搬东西的方式:
newPosX = posX + addX * deltaTime;
有人知道为什么会这样吗?
谢谢
【问题讨论】:
【参考方案1】:我是 raylib 的新手,但我相信 GetFrameTime()
函数是您正在寻找的。这是cheat sheet中的sn-p:
float GetFrameTime(void); // Returns time in seconds for last frame drawn
【讨论】:
以上是关于即使使用 DeltaTime,C++ Raylib 在不同的 FPS 下也有不同的移动速度的主要内容,如果未能解决你的问题,请参考以下文章