调整控制台上 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;
}
对不起,这个问题很蹩脚。
您不想使用 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;
}