小编Aar*_*son的帖子

无法引入变量时间步长

我目前正在大学做计算机游戏编程,在用C++创建物理引擎的过程中.

我被要求通过GetTickCount()方法引入一个时间步,尽管不准确,因为它适合我们进入时间步进的当前深度

我的问题是,现在我已经介绍了基于时间步长的移动,通过两个不同的更新函数覆盖来绘制屏幕的对象似乎不起作用.

通过在代码中添加断点,看起来好像mElapsedTime似乎没有传递任何值,我很难过.

很抱歉,如果这篇文章太罗嗦或有些偏离主题,我试图提供尽可能多的上下文,这是我的第一篇文章,任何帮助表示赞赏.

(frameStartTime参数只是在更新和绘制帧之前采用滴答计数)

编辑:m float类型的时间,以便在粒子类的更新中更容易相乘(例如pos.x = velocity.x*timeStep),这就是从无符号长到浮点数的转换的原因,它是否仍然是多余的?

void Simulation::gameLoopDelay(DWORD frameStartTime)
{
    DWORD presetFrameInterval = 16;
    DWORD frameProcessingTime = GetTickCount() - frameStartTime;

    if (frameProcessingTime < presetFrameInterval)
    {
        Sleep(presetFrameInterval - frameProcessingTime);
    }

    mElapsedTime = (float)frameProcessingTime / 1000.0f;
}
Run Code Online (Sandbox Code Playgroud)

c++ timer

7
推荐指数
1
解决办法
354
查看次数

标签 统计

c++ ×1

timer ×1