最近接触到了游戏编程(非win32平台),主要是些2d小游戏,众所周知,游戏有一个帧速的概念,结构上是一个循环,画面都是在这个循环中一帧一帧画出来的,我突然想到,为什么win32的程序没有帧速这个概念呢?在游戏中当没有任何输入的时候,其实也是在一帧一帧的画,那么,win32的程序在没有输入,空闲的时候,是怎么处理的呢?此时对话框画面依然显示在屏幕上,这时是一种什么状态呢?比如一个对话框,在没有任何输入的时候程序是处于Domodal()的内部不停的循环呢,还是另一种情况?谢谢

解决方案 »

  1.   

    win32 大概过程
    while(等待消息)
    {
    switch()
    {
    case draw: draw(&rect);//指定区域画相应图
    case invilidate:    invilidate(&rect);//把无效的区域做标记
    case update:      updatewindow();//把标记无效的区域重绘
    }
    }如果在某块区域画了图,而没有标记这个区域无效的,那么这张图会一直在屏幕上,即使标记无效了,不更新,图也不会变的