调整控制台上 2 个不同对象的速度

Adjusting the speed of 2 different object on console

对不起,这个问题很蹩脚。

您不想使用 sleep_for。它可以休眠更长时间并且不提供时间保证。你想要的是一个固定的更新游戏循环。您可以查看流行的游戏引擎以了解其实现方式。

但它归结为以下伪代码

//mainloop
// get a number of frame based on time.
// take a number of frame higher than expected frame rate. say 10 ms.
int frame = now() / frameDuration; 

while(true)
{
    int frameNow = now() / frameDuration;
    
    while(frame != frameNow)
    {
        Update();
        frame++;
    }

    render();
}

具有以下更新功能:(又是伪代码)

// there, you advance you object for a fixing duration, say 10 ms.
// just use different speed for each
Update()
{
    obstacle.position += obstacleSpeed * frameDuration;
    character.position += characterSpeed * frameDuration;
}