admin管理员组文章数量:1530518
2024年5月3日发(作者:)
用Visual C++编写属于自己的游戏
我的地盘我做主,编写属于自己的游戏永远是玩家的最高境界。这期程序谷带给大家的是辽
宁肖占龙朋友编写的麻将对对碰小游戏,连小编我都爱不释手,欲罢不能。为了节约宝贵的
版面,杂志内的文章有部分删节,完整文章的电子版以及Visual C++项目文件可以在
/11program/200501/
找到,非常适合喜欢Visual C++朋友按
部就班,跟着文章一步步操作。如果你想一睹为快,可以直接下载编译完成的游戏,地址是
/11program/200501/
。游戏虽小但五脏俱全,游戏制作大师难
道不是从编写小游戏起步的吗? ——程序谷栏目编辑 东渐
在这篇文章中我将向大家介绍麻将对对碰游戏的完整制作过程。这个游戏有点类似于早期街
机上四川麻将的玩法,从四周找起,找到两个一样的就可以用鼠标左键确认消除。每人每次
有60秒的时间去完成。此外,按下F1键可以重新开始,ESC退出游戏。我把游戏做成可以
允许两个玩家轮流游戏的竞赛方式,这样你就可以和你的女朋友一起玩,省的她总是埋怨你
忙着玩游戏而忽略了她的存在(见图)。
本游戏是用Visual C++ 6.0、DirectX SDK 7.0编写的。
X SDK
首先介绍一下DirectX SDK。DirectX SDK是微软推出的一套在Windows中开发多媒体程序
的API函数集,可以在
/windows/directx/
上免费获得,目前最新
版本是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
在向工程中加入资源文件后,使用Alt+F7调出设置对话框,在General下的Microsoft
Foundation Classes选择use MFC in a Static Libarary。然后加入和
。
之后为工程建立一个窗口类,在窗口类的头文件中把构造函数声明修改为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技术。如果你有兴趣,可以把它改成网络版,
或者可以加上音效。欢迎到我的主页交流,网址是:
/
。 [YY19]
笔者第一次接触到多媒体,是上学时买的一套多媒体光盘,它集成了图像、动画、声音、文
字等多种元素,使得学习的过程有声有色,比如:在学语文时,有配乐朗诵;学化学时,只
要动动鼠标就可以做氧气燃烧等各种化学试验;做数学题时它能帮我判断对错并提示出错原
因等。当时就想,编制多媒体光盘的程序员们,真的是太神奇了。直到后来学会了
版权声明:本文标题:用Visual C++编写属于自己的游戏 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1714721581a419537.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论