即使使用 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 下也有不同的移动速度的主要内容,如果未能解决你的问题,请参考以下文章

C++ Win32 FPS 和 DeltaTime 实现

如何将 Raylib 添加到 VS 代码中?

滚动背景图像,不能隐藏接缝,c ++ raylib

Makefile:2: *** 缺少分隔符。停止。我该如何解决这个问题我是 Raylib for C++ 的新手

从类方法中清除 raylib 中的背景会使窗口闪烁

使用 raylib 渲染核 GUI 失败