首页/技术开发/内容

通向DirectDraw之捷径

技术开发2024-06-12 阅读()
MB_ICONERROR);
            return 0;
        }

        ShowWindow(hWnd,SW_SHOW);
        UpdateWindow(hWnd);

        while(lpMsg.message != WM_QUIT)
        {
            if(PeekMessage(&lpMsg,0,0,0,PM_REMOVE))
            {
                TranslateMessage(&lpMsg);
                DispatchMessage(&lpMsg);
            }
            else if(g_bActive)
            {
                MainLoop();
            }
        }
        return lpMsg.wParam;
    }


     这就是我们的应用程序中最长的函数——WinMain()。像往常一样, 我们创建一个窗口类,然后再创建一个窗口,显示及更新它, 并且进入消息循环。看上去主循环不同於平常是因为我们不想要主游戏进程被消息的处理所干扰。我们通过观察全局指针变量 g_bActive 的状态 来判断该时刻调用游戏循环是否安全以及在循环中向屏幕上传送(blit)图象,而最后全部结束的时候我们返回一个长指针 lpMsg.wParam.( 至于为什么我实在是不敢肯定,可其它每个 Win32 应用程序都是这样做的,对,就是这样)
     实在是太简单了,嗯!?我们只用了 135 行程序编码就已经将对象写到了屏幕上。自由地去进一步探究这些类的结构,做一些载入位图至表面一类的实验等等。这是使用 DDraw的一个很棒的捷径。它能在不牺牲控制 (你总是能在你需要的时候回去编辑那些类) 和性能的情况下而使事情变得容易些。有一件事得要注意的是在计算机上如果我使用了这个结构却不绘制任何对象到屏幕上, 应用程序将会锁定。( 对,这就是我为什麽把文本输出也包括在这里) 如果我说做游戏很大程度上就是把对象传送( blit )到屏幕上,大概不会引起什么争议(除非又有一些新的艺术风格诞生了)。

第1页  第2页  第3页  第4页  第5页 

……

相关阅读