我正在从一本关于游戏编程的书中学习 DirectX,它使用以下方法进行游戏循环:
long int start = GetTickCount();
while(true)
GameRun();
void GameRun()
{
if(GetTickCount() - start >= 30)
//do stuff
}
无论时间是什么,这都是start
相等的(我猜 get tick count 给出了自程序启动以来的“ticks”数量),然后,30 个滴答后,所有的 AI、渲染等都完成了。
我的问题是,先做所有的 AI 等不是更有效率,然后,如果还有时间,等到框架需要改变?
那么,保持稳定帧速率的更好方法是什么?(最好只使用我已经用于声音、图像和输入的 DirectX 标头(例如 d3d9.h))
并且,在相关说明中,GetTickCount() 究竟做了什么,“tick”有多长