- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[用VisualC编写属于自己的游戏
用Visual C++编写属于自己的游戏
我的地盘我做主,编写属于自己的游戏永远是玩家的最高境界。这期程序谷带给大家的是辽宁肖占龙朋友编写的麻将对对碰小游戏,连小编我都爱不释手,欲罢不能。为了节约宝贵的版面,杂志内的文章有部分删节,完整文章的电子版以及Visual C++项目文件可以在/11program/200501/ltmjbh.html找到,非常适合喜欢Visual C++朋友按部就班,跟着文章一步步操作。如果你想一睹为快,可以直接下载编译完成的游戏,地址是/11program/200501/mahjong.zip。游戏虽小但五脏俱全,游戏制作大师难道不是从编写小游戏起步的吗???? ???——程序谷栏目编辑? 东渐在这篇文章中我将向大家介绍麻将对对碰游戏的完整制作过程。这个游戏有点类似于早期街机上四川麻将的玩法,从四周找起,找到两个一样的就可以用鼠标左键确认消除。每人每次有60秒的时间去完成。此外,按下F1键可以重新开始,ESC退出游戏。我把游戏做成可以允许两个玩家轮流游戏的竞赛方式,这样你就可以和你的女朋友一起玩,省的她总是埋怨你忙着玩游戏而忽略了她的存在(见图)。
本游戏是用Visual C++ 6.0、DirectX SDK 7.0编写的。1.DirectX SDK首先介绍一下DirectX SDK。DirectX SDK是微软推出的一套在Windows中开发多媒体程序的API函数集,可以在/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
文档评论(0)