基于Win8的飞机大战游戏的设计与实现

举报
资源描述
基于Win8的飞机大战游戏的设计与实现 摘 要:飞机大战是一款比较老的游戏编程课题,但是它一直不失自己的活力,现今依然有很多孩子玩着各式各样的飞机游戏。玩家控制着自己的战斗飞机在天空翱翔,击落敌机,体验歼敌的快感,同时获得各种各样的奖励。 进入飞机大战游戏后,先看到的是游戏海报,采用了淡入淡出效果,进入菜单选择界面,有进入游戏、游戏说明和退出游戏三个选项,进入游戏后玩家按方向键移动飞机,击中敌机后获得分数与当前关卡数成正比,比率为一比一,当玩家获得的分数为五十乘以当前关卡数后就会过关,玩家飞机被敌人飞机击中或者撞到就会游戏失败,游戏功能虽然不是很全面,但正如古人说过的云麻雀虽小,五脏俱全。 本游戏是基于MFC框架开发的,采用GDI进行底层的图像编程,采用GDI+抗锯齿来处理图片的失真问题,给玩家营造一个真实的、刺激的战斗环境。 关键词:Win8;飞机大战;游戏 Abstract: The plane war is an older game programming issues, but it hasn’t lost its vigour, and there are plenty of children playing various of plane games nowadays. Players control their own fighting plane soar in the sky, shooting down enemy planes, feeling the happiness when they kill the enemy, and they will get kinds of awards meanwhile. When players enter the plane game, they will see the game poster firstly. I use the technology of fade in and fade out. Then players get into the menu choosing drawing. There are three choices in this drawing, which are entering game, game introduction and exit.Players press direction key to control the move of their fighting plane when they are in the game, and they will obtain a corresponding score when they fight down a enemy plane, which rate is one to one. Players will pass the current screening when their socre is more than 50 multiplied by the current screening. Players will failed when they are hit or stricken by enemy plane。The game is not comprehensive, but as the old saying goes that the sparrow may be small but it has all the vital organs. This game is developed basing on the MFC framework, programming with GDI and using GDI+’s anti-aliasing to deal with the distortion of the picture. This game build a real and fierce environment to players. Keywords: Win8; Plane War; Game 目 录 第1章 绪论 1 1.1 课题背景及研究意义 1 1.1.1 课题背景 1 1.1.2 研究意义 1 1.2 开发工具的选用及语言介绍 1 1.2.1 MFC技术 1 1.2.2 GDI技术 2 1.2.3 GDI+技术 2 1.2.4 开发工具及运行环境 2 1.3 文章内容及课题的主要贡献 2 1.4 本章小结 3 第2章 需求分析 4 2.1 功能需求 4 2.1.1 系统功能需求 4 2.1.2 子系统组成 4 2.1.3 玩家用例图 4 2.2 性能需求 5 2.2.1 硬件环境 5 2.2.2 软件环境 5 2.3 可行性分析 5 2.4 本章小结 5 第3章 系统总体设计 6 3.1 系统的结构划分 6 3.1.1 系统结构图 6 3.1.2 子系统 6 3.2 系统的数据层 8 3.2.1 游戏对象类 8 3.2.2 视图类 8 3.3 本章小结 8 第4章 系统实现过程 9 4.1 游戏全屏 9 4.2 全局宏及小函数 9 4.3 游戏菜单系统 11 4.3.1 加载菜单图片 11 4.3.2 菜单绘图 12 4.3.3 绘制文字信息 15 4.4 地图系统 17 4.4.1 加载地图 17 4.4.2 绘制地图 18 4.5 战斗系统 19 4.5.1 初始化对象 19 4.5.2 创建定时器 20 4.5.3 响应按键弹起消息 20 4.5.4 响应按键消息 21 4.5.5 响应定时器消息 23 4.5.6 重新初始化游戏 37 4.6 本章小结 41 第5章 关键技术 42 5.1硬件及软件环境 42 5.2关键技术 42 5.2.1 使用MFC 42 5.2.2 使用GDI技术 42 5.2.3 使用GDI+技术 42 5.3 本章小结 43 第6章 总结与展望 44 6.1 总结 44 6.2 展望 44 毕业设计体会 45 致谢 46 参考文献 47 II 第1章 绪论 1.1 课题背景及研究意义 1.1.1 课题背景 在这个IT技术快速发展的时代,技术不断更新,各种技术产品层出不穷,游戏编程作为IT技术一大分支,深受广大游戏开发人员以及玩家的喜欢。游戏平台也是开枝散叶,现在的游戏从一开始的DOS遍布PSP、Xbox、OBox、PC、移动手机等平台[1]。例如:《魔兽争霸》、《卡卡跑丁车》、《CS》、《英雄联盟》等等游戏获得广大游戏爱好者的高评价。人们越来越倾向于通过使用游戏来传播信息、展示自己。 游戏编程是一种全新的编程理念,一种新型艺术,涉及数学、物理、美术、音乐等学术领域,在虚拟游戏世界中,擅长数学和物理的人可以设计出高等的程序逻辑来模拟出各种栩栩如生的自然现象,而痴迷于美术和音乐的人可以尽情挥洒自己的才华,创造出震撼人心的游戏画面以及悦耳动听的游戏歌曲。 伴随着越来越多的新型创新游戏进入人们的眼界,大部分老主题游戏已经渐渐淡出人们的视角,然而以飞机大战、象棋为首的一些老游戏因为其操控性简单,锻炼人智力,可玩性高,所以依然炙手可热。 1.1.2 研究意义 基于Win8的飞机大战游戏采用传统飞机大战设计理念,玩家操控自己的战机,不断歼灭敌机,一路过关斩将,最终获得最高荣誉。玩家在虚拟世界中可以放松自己的心情,欣赏漂亮的游戏画面,聆听悦耳的游戏音乐,感受游戏艺术的神奇。 开发飞机大战能够让我体会游戏编程思想,了解游戏编程专业知识,巩固自己的编程基础,同时开拓自己视野,有助于全面提升自己的能力。 1.2 开发工具的选用及语言介绍 1.2.1 MFC技术 MFC的全称是Microsoft Foundation Classes,是微软为了方面广大程序员进行界面编程而封装的一套C++基础类库,主要封装了Win32API,Win32API全称Win32 Application Programming Interface,是微软的32位机应用程序编程接口[2][3][4]。MFC将Win32API封装成一个个类,在MFC中最重要的是类对象,在Win32API中最重要的是句柄,两者之间有着紧密的关系,例如一个对话框类CDialog继承于CWnd类,CWnd类中有一个public属性的成员变量m_hWnd,m_hWnd变量类型为HWND,这是标准Win32API变量类型,也是一种句柄类型,所以说两者之间密切相连[5][6]。MFC类对象和Win32API句柄对象之间可以相互转换,如果要从MFC类对象获得句柄,方法为this->m_hWnd或者使用GetSafeHwnd函数,如果要从句柄获得相应的MFC窗口类对象,使用FromHandle函数。 MFC不仅仅封装了Win32API,同时还提供了一套开发模板,也就是我们通常所说的MFC开发框架。程序员在使用Win32API编程的时候需要自己写主程序框架,搭建消息响应框架,而MFC定义了这些框架的轮廓,提供了所有接口的系统默认实现方法,程序员需要完成的任务就是在系统默认的实现方法里面加入自己的实现代码,从而达到自己的目的,同时Visual C++系统集成开发环境还提供一些便捷工具辅助程序员进行编程,比如类向导ClassWizard等等[7][8]。这样程序员就不必要关注Win32API底层消息处理响应机制,提高编程速度,充分发挥Windows平台的功能。 因为MFC封装了底层Win32API,所以MFC执行效率是没有底层Win32API快,但是MFC对Win32API只是进行了浅层次的封装,所以执行效率损失非常的小,对于大多数用户编程而言,这点可以完全可以忽略。 1.2.2 GDI技术 GDI是微软开发的图形设备接口,负责与程序与底层显卡之间的交互,这样程序员就不必要关心底层图形显示设备的相关细节,实现在硬件上显示图形,提高了程序员的开发效率[9]。 有以下4个特点: (1)不让程序员直接操纵显卡驱动,可以通过hdc设备环境上下文访问显卡; (2)如果程序员需要进行绘图,就必须要获得相关窗口的设备环境上下文; (3)因为各个硬件开发商已经封装了接口,程序员不需要关心底层设备的类型。 1.2.3 GDI+技术 由于GDI只能处理位图图片,不能满足用户对各种各样的图片处理的需求,微软继GDI之后又开发出了一套GDI+函数库,GDI+与GDI功能几乎一样,是GDI的增强版,对以前版本进行了大幅度优化,同时提供了许多新API,满足应用程序开发人员的需求,作为老版本的增强版,GDI+同样实现了与底层硬件的分离,使得开发人员开发效率得到大大提升[10][11]。 GDI+新增加的API如下 (1)允许程序员创建一个沿着路径颜色渐渐改变的画刷; (2)实现将一组曲线按照特定的程序员规定的顺序连接起来; (3)在老版本中,路径属于设备环境上下文,生命周期有限,而在新版本中,由Graphics来完成对图像的绘制,所以可以相同路径对象绘制多次路径; (4)GDI+封装了相关矩阵函数,能够让程序员轻易实现对图片的平移、缩放、旋转,提高编程效率; (5)实现alpha混合技术[12]; (6)正如上文提到的,新增支持jpg、png、gif等格式图片的处理。 1.2.4 开发工具及运行环境 适用的操作系统:WinXP、Win7、Win8等微软产品 开发环境: VS2010 开发语言: C++ 1.3 文章内容及课题的主要贡献 本文主要介绍课题的研究背景、系统的意义和开发价值、系统设计的总体思路和相关技术等,对系统的可行性和需求进行分析,清晰的介绍了基于Win8的
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > 学术论文 > 毕业论文


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号