Windows游戏编程大师技巧
---------------------------- 哈哈,酷吧?这是一个完整的Wind32/DirectX游戏,表现接近上佳水平了。BLACKOUT.CPP源文件中有几百行代码,但是我们只能将之视为类DirectX游戏而且是由某个人编写的(我!)。不管怎样说,还是让我们迅速浏览一下实例1.3的内容吧。 首先,Windows需要一个事件循环。这就是Windows编程的标准,因为Windows在大部分情况下都是事件驱动的。但是游戏却不是事件驱动的。无论用户在干什么,它们都在一直运行。因此,我们至少需要支持小型事件循环以取悦于Windows。执行这项功能的代码位于WinMain()中——呀,令人惊奇!不是吗? WinMain()是所有Windows程序的主要入口点,就像是Main()是所有DOS/UNIX程序中的入口点一样。任何情况下,FREAOUT的WinMain()创建一个窗口,正确进入到事件循环中。如果Windows需要工作时,就按照这样做。当所有的基本事件处理都结束时,访问Game_Main()。这就是我们的游戏程序实际运行的状态。 如果需要的话,读者可以一直在Game_Main()中循环。而不释放回到WinMain()主事件循环体中。但这样做不是件好事,因为Windows会得不到任何信息,从而缺乏资源。哎,我们想要做的是运行一个动画和逻辑的画面,然后返回到WinMain()。这样的话,Windows可以继续工作和处理信息。如果所有这些听起来像是幻术的话,请不要担心——在下一章中情况还会更糟。 一旦进入Game_Main(),就执行FreakOut逻辑。游戏图像提交到显示缓冲区,最后通过DD_FLIP()访问在循环结束时在显示屏上显示出来。因此我希望读者要做的是浏览一下全部的游戏状态,跟随一遍游戏循环的每一部分,了解一下工作原理。要想玩游戏的话,只要单击FREAKOUT.EXE文件,程序就会立即启动。控制部分包括: 右箭头键——向右移动操作杆。
- Aventador1682012-09-03谢谢分享,很好的学习材料,正在学习之中。
- 粉丝: 8
- 资源: 10
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助