用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.wendangwang.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.wendangwang.com/。 [YY19] 笔者第一次接触到多媒体,是上学时买的一套多媒体光盘,它集成了图像、动画、声音、文字等多种元素,使得学习的过程有声有色,比如:在学语文时,有配乐朗诵;学化学时,只要动动鼠标就可以做氧气燃烧等各种化学试验;做数学题时它能帮我判断对错并提示出错原因

Word文档免费下载Word文档免费下载:用Visual C++ 6.0、DirectX SDK 7.0编写游戏具体步骤 (共3页,当前第1页)

你可能喜欢

  • 游戏厅
  • PE制作
  • MV制作
  • 手套制作
  • QQ游戏
  • PCB制作
  • 手袋制作
  • 游戏机

用Visual C++ 6.0、DirectX SDK 7.0编写游戏具体步骤相关文档

最新文档

返回顶部