用VisualC编写属于自己的游戏

用VisualC++编写属于自己的游戏我的地盘我做主,编写属于自己的游戏永远是玩家的最高境界。这期程序谷带给大家的是辽宁肖占龙朋友编写的麻将对对碰小游戏,连小编我都爱不释手,欲罢不能。为了节约宝贵的版面,杂志内的文章有部分删节,完整文章的电子版以及VisualC++项目文件可以在wwcfan/11program/200501/ltmjbh找到,非常适合喜欢VisualC++朋友按部就班,跟着文章一步步操作。如果你想一睹为快,可以直接下载编译完成的游戏,地址是wwcfan/11program/200501/mahjong.zip。游戏虽小但五脏俱全,游戏制作大师难道不是从编写小游戏起步的吗?——程序谷栏目编辑东渐在这篇文章中我将向大家介绍麻将对对碰游戏的完整制作过程。这个游戏有点类似于早期街机上四川麻将的玩法,从四周找起,找到两个一样的就可以用鼠标左键确认消除。每人每次有60秒的时间去完成。此外,按下F1键可以重新开始,ESC退出游戏。我把游戏做成可以允许两个玩家轮流游戏的竞赛方式,这样你就可以和你的女朋友一起玩,省的她总是埋怨你忙着玩游戏而忽略了她的存在(见图)。本游戏是用VisualC++6.0、DirectXSDK7.0编写的。1.DirectXSDK首先介绍一下DirectXSDK。DirectXSDK是微软推出的一套在Windows中开发多媒体程序的API函数集,可以在wwmicrosoft/windows/directx/default.asp上免费获得,目前最新版本是9.0。在DirectXSDK的帮助下,程序员可以专注开发游戏本身,涉及到2D、3D、声音以及网络等的功能,只要直接调用相应组件即可。我们的麻将对对碰只用了其中的图像功能。2.在VC中配置DirectXSDK首先安装DirectXSDK。之后,需要在VisualC++中配置一下,指定它的路径:依次选择“工具”、“选择”菜单,在“目录”页中的Includefiles中添加DirectXSDK的Include目录,然后在Libraryfiles中添加DirectXSDK的Lib目录。3.编写游戏首先在VisualC++中建立一个空的Win32Appllcation工程。接着,往工程中加入stdafx.h文件,并且在stdafx.h文件中加入#include<ddrah>,表示将要使用DirectDraw组件。在向工程中加入资源文件后,使用Alt+F7调出设置对话框,在General下的MicrosoftFoundationClasses选择useMFCinaStaticLibarary。然后加入Dxguid.lib和ddralib。之后为工程建立一个窗口类,在窗口类的头文件中把构造函数声明修改为public。接下来我们还要定义一些函数和变量,其中DXInit()为DirectDraw的初始化函数,它是DirectX编程的核心,所有的绘图初始化都在其中。当然,DXInit()只是建立了主绘图页、实现后缓冲区和主绘图页的连接,并没有建立幕后内存区。函数loabmp()中实现了建立幕后内存区和显示位图的功能。如何使用这三个绘图页呢?为了避免闪烁现象,我们首先把位图贴到幕后内存区中,然后在贴到后缓冲区,再利用翻页的方式绘出要显示的位图内容。以上操作分别由BitFast()贴图函数和Filp()翻页函数完成。具体的使用方法,请参阅有关资料。为了方便以后的游戏操作,我就麻将图像排成序号:1-9代表1-9万、10-18代表1-9条、19-29代表1-9饼、28-34分别代表东、南、西、北、中、发、白。这样作的好处是简化了判断条件成立的条件,因为麻将每张都有四个,所以在麻将信息中加入了n用来判断该张发出的次数,h是用来存放麻将的类型。接着使用“插入”、“新建类”建立应用程序类,在Classtype对话框中选择GenericClass,在Name中输入类名CMa激angApp,在Baseclass(es)中的DerivedFrom中输入CWinApp。然后分别为工程添加WM_CREATE、WM_TIMER消息并填写相应代码,从而可以在屏幕上显示LOGO和麻将图像了。游戏的主要功能是在play()中完成的,代码非常简单,核心问题就是如果判断所选两个麻将是否相同。这个过程请参见2004年18期程序谷刊登的《用VC作的一个扑克游戏》一文中的方法。为了响应快捷键,向工程加入WM_KEYDOWN消息;为了实现右键取消功能,为工程加入WM_RBUTTONDOWN消息;为了实现左键选择功能,为工程加入WM_LBUTTONDOWN消息。最后加入fp()发牌函数、Scoreshow()和how()函数,这样就可以实现游戏的功能了。4.小结这个游戏主要应用了当前比较流行的DirectX技术。如果你有兴趣,可以把它改成网络版,或者可...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?