帧循环
cocos是如何保持60帧一秒的
在执行完applicationDidFinishLaunching中我们自定义的初始化代码后,便开始游戏的帧循环
while(!glview->windowShouldClose())
{
QueryPerformanceCounter(&nNow);
//计算当前时间与上一帧的时间间隔是否大于设定每帧的时间间隔(默认60帧/秒)
if (nNow.QuadPart - nLast.QuadPart >_animationInterval.QuadPart)
{
nLast.QuadPart= nNow.QuadPart;//重置上一帧的时间
director->mainLoop(); //开始进入主循环 mainLoop所做的事情
glview->pollEvents();
}
else
{
//如果在一帧内,已经完成循环动作,则执行这里,确保每秒帧数达到设置值
Sleep(0);
}
}
mainLoop
mainLoop,顾名思义,这是游戏的主循环
void DisplayLinkDirector::mainLoop()
{