摘 要 目前,以计算机技术和网络技术为核心的现代网络技术已在现实生活和生产中得以广泛的使用,休闲类网络游戏集趣味性,娱乐性,互动性和益智性于一体,已经成为多数人群的休闲方式。 电脑游戏经过短短30年的发展,已经成为影响公众生活,改变公众娱乐方式的重要产业。过去,人们主要是借助电影、电视、音乐等方式来娱乐。而今天,以游戏为代表的电子娱乐正在成为主流娱乐方式。游戏也正在迅速成长为一个庞大的产业。 MFC,微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是WinDOS下开发人员使用的专业C++ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包,MFC作为与VC++血肉相连的部分, 本软件使用C++语言实现,详细介绍了游戏设计基本概念和MFC,并在 Visual C++6.0环境下使用MFC开发游戏软件作为本论文的实例。 关键词:电脑游戏设计 MFC Visual C++ ABSTRACT At present, taking computer technology and the network technology as the core, modern network technology is already used in the real life and the production. The leisure network game sets interest, entertainment, interaction and intelligence-development in a body, and already became the leisure mode of the most people. Computer games after a short period of 30 years of development, the impact has been in public life, to change the way major public entertainment industry. In the past, people mainly through films, television, music, and other means of entertainment. Today, in order for the game on behalf of the Electronic Entertainment is becoming the mainstream of entertainment. Games are rapidly growing into a huge industry. MFC, Microsoft Foundation Classes (Microsoft Foundation Classes), Microsoft is actually provided for in the C + + environment, the preparation of an application framework and engine, VC + + is the next WinDOS professional developers use C + + SDK (SDK, Standard SoftWare Develop Kit, the professional software development platform), MFC is on top of it hung on a supplementary software development kit, MFC with VC + + as a flesh-and-blood part of this software to use C + + language, the details of the basic concepts of game design and MFC, and Visual C + +6.0 environment, the use of MFC development of game software as an example of this thesis. Key Words computer game design MFC Visual C + +
目录 绪论 5 1 引言 6 1.1飞行棋简介 6 1.2 飞行棋规则 6 1.3开发背景 7 1.4 开发环境及运行环境 8 1.4.1 开发环境 8 1.4.2 运行环境 8 1.4.3 制作工具 8 1.5 Microsoft® Visual C++ 及MFC简介 9 2 游戏设计概论 11 2.1 电脑游戏的历史 11 2.2 游戏的组成与结构 12 2.3 游戏的元素 14 2.3.1 界面(图像) 14 2.3.2 操作界面 14 2.3.3 声音 15 2.3.4 游戏性 15 2.4 游戏系统的层次 15 3 软件详细设计 16 3.1 软件的总体架构 16 3.2 函数设计介绍 16 3.2.1初始化程序 17 3.2.1游戏开始初始化 18 3.2.3 初始化CDC绘图和初绘所有飞机 19 3.2.4产生一个随机数 21 3.2.6重绘所有16架飞机 23 3.2.7更新lastplane[16]的部分代码 23 3.2.8 判断当前用户的点击时候选种了状态为1~3的飞机 24 3.2.9打印当前的游戏状态 30 3.2.10 flash消息响应函数 31 3.3 源文件文件 36 3.3.1 program.cpp 36 3.3.2 MainFrm.obj ,MainFrm.sbr 39 3.3.3 programDoc.obj,programDoc.sbr -文件 39 3.3.4 StdAfx.obj , StdAfx.sbr 39 4 界面设计 40 5 测试与维护 42 5.1 测试的任务及目标 42 5.1.1 测试的任务 42 5.1.2 测试的目标 42 5.2 测试方案 42 5.2.1 模块测试: 43 5.2.2 集成测试: 43 5.2.3 验收测试 43 5.2.4 平行运行 44 5.2.5 测试结果 44 心得体会 45 参考文献 46 致 谢 47
心得体会 通过编写这个程序,我体会最为深刻的一点是系统架构和设计模式的重要性。即使是对于一个并不大的程序,代码的组织都是非常重要的,因为这关系到日后的维护以及扩展。这个游戏之中,有关网络Socket编程或者博弈树算法的知识都可以直接从无所不包的Internet上获取,甚至可以直接获得一个完整的五子棋人机对弈算法的源代码级模块。但是对于系统的架构,却完全是自己的事情,几千上万行的代码需要通过合适的方法组织起来,使程序员编写代码更加有条理,更加符合软件工程的标准,这才是最重要的。 在刚开始编写这个程序的时候,我幼稚地认为其中最重要的是博弈树算法。但是头一个月编写程序的时候却发现程序越写越不容易维护,可见是我走错了方向。后来我向公司真正的软件设计人员及系统架构师讨教,他们告诉我:我们的先人早已为我们准备好了各种精良可用的现成算法,我们所要做的就是直接“拿来主义”罢了;但是对于代码的组织(也就是软件的架构)才是真正软件工业的核心部分,因为软件事实上是直接和经济挂钩的,因此我们必须在编写代码之前选择一种最为合适的方法来组织这些代码,否则我们将会失去更多的时间和金钱。[15] 于是,我将以前写的代码全部删除,认真地思考了三天的时间。我也在这三天内真正从一个学生程序员走入了软件开发的大门,我开始发现其实软件开发并不是纯数学——正相反,数学只占了很小的一部分。它其实是一种哲学,一种有着数学美感的哲学。 参考文献 [1] MSDN for Visual Studio 6.0 [2] 设计模式——可复用面向对象软件的基础,Erich Gamma/Richard Helm/Ralph Johnson/John Vlissides著,李英军/马晓星/蔡敏/刘建中 等译,机械工业出版社 [3] 深入浅出MFC(第2版),侯俊杰著,华中科技大学出版社 [4] A Beginner ''s Guide to Pointers,Andrew Peace http://www.codeproject.com/cpp/pointers.asp [5] 水煮多态,titilima http://home.nuc.edu.cn/~titilima/readarticle.php?id=53 [6] Microsoft® Visual C++.NET 技术内幕(第6版),George Shepherd/David Kruglinski著,潘爱民译,清华大学出版社 [7] Visual C++网络通信协议分析与应用实现,汪晓平/钟军 等编著,人民邮电出版社 [8] C++编程思想,Bruce Eckel著,刘宗田/邢大红/孙慧杰等译,机械工业出版社 [9] 21天学通C++,Jesse Liberty著,康博创作室译,人民邮电出版社 [10] C++标准程序库,Nicolai M.Josuttis著,侯捷/孟岩 译,华中科技大学出版社 [11] Windows程序设计,Charles Petzold著,北京博彦科技发展有限公司译,北京大学出版社 [12] Visual C++.NET网络编程,易君 编著,中国铁道出版社 [13] 博弈树搜索 http://202.113.96.26/wlkc/rengongzhineng/rengongzhineng/kejian/AI/Ai/chapter3/33.htm [14] 五子棋的核心算法,蝈蝈俊.net http://blog.joycode.com/ghj/articles/12727.aspx [15] 道法自然,王咏武/王咏刚 著,电子工业出版社 致 谢 |