6-2 游戏循环动画显示

游戏循环动画显示

使用定时器的操作很可能因为消息队列正在处理其它操作而导致延迟,因此使用循环来大大加速绘制动画。

MSG msg = { 0 };				//定义并初始化msg
while( msg.message != WM_QUIT ) //使用while循环,如果消息不是WM_QUIT消息,就继续循环
{
if( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) ) //查看应用程序消息队列,有消息时将队列中的消息派发出去。
{
TranslateMessage( &msg ); //将虚拟键消息转换为字符消息
DispatchMessage( &msg ); //分发一个消息给窗口程序。
}
else
{
g_tNow = GetTickCount(); //获取当前系统时间
if(g_tNow-g_tPre >= 100) //当此次循环运行与上次绘图时间相差0.1秒时再进行重绘操作
Game_Paint(hwnd);
}

}