用Visual C++ 6.0、DirectX SDK 7.0编写游戏具体步骤
本游戏是用Visual C++ 6.0、DirectX SDK 7.0编写的。
1.DirectX SDK
首先介绍一下DirectX SDK。DirectX SDK是微软推出的一套在Windows中开发多媒体程序的API函数集,可以在http://www.51wendang.com/windows/directx/default.asp上免费获得,目前最新版本是9.0。
在DirectX SDK的帮助下,程序员可以专注开发游戏本身,涉及到2D、3D、声音以及网络等的功能,只要直接调用相应组件即可。我们的麻将对对碰只用了其中的图像功能。
2.在VC中配置DirectX SDK
首先安装DirectX SDK。之后,需要在Visual C++中配置一下,指定它的路径:依次选择“工具”、“选择”菜单,在“目录”页中的Include files中添加DirectX SDK的Include目录,然后在Library files中添加DirectX SDK的Lib目录。
3.编写游戏
首先在Visual C++中建立一个空的Win32 Appllcation工程。接着,往工程中加入stdafx.h文件,并且在stdafx.h文件中加入#include <ddraw.h>,表示将要使用DirectDraw组件。在向工程中加入资源文件后,使用Alt+F7调出设置对话框,在General下的Microsoft Foundation Classes选择use MFC in a Static Libarary。然后加入Dxguid.lib和ddraw.lib。 之后为工程建立一个窗口类,在窗口类的头文件中把构造函数声明修改为public。接下来我们还要定义一些函数和变量,其中DXInit()为DirectDraw的初始化函数,它是DirectX编程的核心,所有的绘图初始化都在其中。当然,DXInit()只是建立了主绘图页、实现后缓冲区和主绘图页的连接,并没有建立幕后内存区。函数loabmp()中实现了建立幕后内存区和显示位图的功能。
如何使用这三个绘图页呢?为了避免闪烁现象,我们首先把位图贴到幕后内存区中,然后在贴到后缓冲区,再利用翻页的方式绘出要显示的位图内容。以上操作分别由BitFast()贴图函数和Filp()翻页函数完成。具体的使用方法,请参阅有关资料。
为了方便以后的游戏操作,我就麻将图像排成序号:1-9代表1-9万、10-18代表1-9条、19-29代表1-9饼、28-34分别代表东、南、西、北、中、发、白。这样作的好处是简化了判断条件成立的条件,因为麻将每张都有四个,所以在麻将信息中加入了n用来判断该张发出的次数,h是用来存放麻将的类型。
接着使用“插入”、“新建类”建立应用程序类,在Class type对话框中选择Generic Class,在Name中输入类名CMajiangApp,在Base class(es)中的Derived From中输入CWinApp。 然后分别为工程添加WM_CREATE、WM_TIMER消息并填写相应代码,从而可以在屏幕上显示LOGO和麻将图像了。
游戏的主要功能是在play()中完成的,代码非常简单,核心问题就是如果判断所选两个麻将是否相同。这个过程请参见2004年18期程序谷刊登的《用VC作的一个扑克游戏》一文中的方法。
为了响应快捷键,向工程加入WM_KEYDOWN消息;为了实现右键取消功能,为工程加入WM_RBUTTONDOWN消息;为了实现左键选择功能,为工程加入WM_LBUTTONDOWN消息。最后加入fp()发牌函数、Scoreshow()和timeshow()函数,这样就可以实现游戏的功能了。
4.小结
这个游戏主要应用了当前比较流行的DirectX技术。如果你有兴趣,可以把它改成网络版,或者可以加上音效。欢迎到我的主页交流,网址是:http://www.51wendang.com/。 [YY19] 笔者第一次接触到多媒体,是上学时买的一套多媒体光盘,它集成了图像、动画、声音、文字等多种元素,使得学习的过程有声有色,比如:在学语文时,有配乐朗诵;学化学时,只要动动鼠标就可以做氧气燃烧等各种化学试验;做数学题时它能帮我判断对错并提示出错原因
你可能喜欢
- 游戏厅
- PE制作
- MV制作
- 手套制作
- QQ游戏
- PCB制作
- 手袋制作
- 游戏机
- 游戏厅需要投资多少钱5页
- 远离电子游戏厅3页
- 游戏厅打鱼机1页
- 游戏厅计费系统8页
- 游戏厅场地合作协议4页
- 红珊瑚游戏厅消防设计6页
- MV制作初探--结题报告2页
- MTV婚纱电影个人MV制作应用价值1页
- 梦里水乡MV制作步骤18页
- MV 制作技巧8页
- 美好记忆MV制作有限公司拍摄个人MV市场调查27页
- 亚视联合传媒团队MV制作合作计划书8页
- Li电池手套箱制作过程2页
- 配药防护手套的制作1页
- 手套(Glove)制作基本教程33页
- bjd猫爪手套+猫爪鞋制作教程(内有万能做鞋经验~)73页
- 摩托车无线调温电热手套制作法2页
- 皮手套制作项目可行性研究报告评审方案设计(2013年发改委立项标准案例范文)14页
- QQ游戏屏蔽代码5页
- QQ游戏故障排除详解3页
- QQ游戏、股票IP端口2页
- 通过HOOK获取QQ游戏登录密码3页
- QQ游戏用户协议22页
- QQ游戏发展112页
- 郑州大学---PCB电路板制作教程12页
- PCB制作简介53页
- PCB板制作流程介绍2页
- PCB外发制作所需资料5页
- PCB板制作流程--通俗版3页
- PCB板制作生产流程3页
- 手袋制作方法及工艺流程11页
- 手袋制作专来技能及工艺流程掌握1页
- 手袋的制作标准9页
- 手袋制作的基本知识4页
- 皮具手袋设计制作时五要素2页
- 降低手袋制作生产成本的方法二十要点3页
- M立方体感游戏机系列的成长5页
- EDA课设游戏机13页
- 金八万游戏机6页
- 大型游戏机三公六人台2页
- 大满贯游戏机5页
- 香港M3益智游戏机、培养音乐节奏的有趣儿童游戏机互动音乐3页