飞机大战实训报告
飞机大战实训报告

飞机大战实训报告作为一款经典的游戏,《飞机大战》已经深入人心,对于爱好游戏开发的人来说,掌握它的制作方法有助于提升自己的技能和经验。
在我的实训项目中,我选择了制作一款《飞机大战》游戏,下面是我的实训报告。
一、前期准备在开始制作游戏之前,我首先进行了一些前期准备,包括学习游戏开发工具和游戏设计思路的设计。
1.游戏开发工具的选择根据我的经验和需求,我选择了使用Cocos Creator 开发工具,因为它可以提供完整的游戏开发环境,包括UI 设计、动画制作、场景控制等功能,同时支持多平台发布。
2.游戏设计思路的设计在开发游戏之前,我需要对游戏的设计方案进行一定的考量。
我决定将游戏分为三个主要部分:开始场景、游戏场景和结束场景。
在开始场景中,我将为玩家提供游戏规则、操作说明等信息。
游戏场景将包括玩家战机、敌机、敌机攻击、奖励、分数等元素。
结束场景将显示玩家的得分、排名和游戏结束信息。
二、游戏开发1.开始场景开始场景是游戏的首屏,玩家可以在这里了解游戏规则和操作方法。
在这个场景中,我将使用Cocos Creator 的UI 设计功能创建一个开始界面。
在这个界面中,我会提供游戏开始、音乐开关、游戏规则等按钮。
2.游戏场景游戏场景是游戏的核心场景,游戏操作和游戏体验都在这里产生。
在这个场景中,我会使用Cocos Creator 的场景设计功能创建一个游戏场景。
在这个场景中,我将包含玩家战机、敌机、敌机攻击、奖励和分数等元素。
3.结束场景结束场景是游戏的最后一个场景,玩家可以在这里查看自己的得分和排名。
在这个场景中,我将使用Cocos Creator 的UI 设计功能创建一个结束界面。
三、游戏发布当游戏制作完成后,我需要将游戏发布到各个平台上。
对于HTML5 平台,我将使用Cocos Creator 提供的发布功能将游戏发布到浏览器上,对于移动平台,我将使用Cocos Creator 提供的发布功能将游戏发布到移动设备上。
飞机大作战游戏实训总结

飞机大作战游戏实训总结1.概述飞机大战游戏是在Microsoft Visual Studio编程软件的MFC环境下制作的一款游戏,界面简洁流畅、游戏方式简单。
游戏主要实现的功能和规则如下:(1)利用键盘中的上下左右键控制我方战机,空格键发射子弹。
战机初始有一定量的血量。
(2)屏幕上随机产生敌机,战机产生的数量和当前关卡,关卡越高,产生的敌机越多,游戏难度越大。
而且敌机产生的位置和速度是不确定的。
只有当我机位于敌机下方时,敌机会产生子弹,默认情况下是不发射任何子弹的。
(3)战机子弹打中敌机,敌机就会爆炸,同时玩家分数会增加,每得1000分进人下一关。
2.相关技术在设计该游戏时,用到许多技术,这里介绍几个相对重要的技术。
关于碰撞检测的相关函数:用CRect类的GetRect()函数可以获得当前对象的矩形区域,IntersectRect()并用此函数判断战机与敌机,子弹与战机,我方导弹与敌机,战机与物品是否相撞。
CObList链表:使用CObList链表来分别存储敌机,炸弹,导弹,爆炸效果。
CobList类似于一个双向链表,POSITION类型的变量为链表的键。
使用POSITION变量,既可以作为链表循环中的循环变量,也可以作为标记某个位置的标签。
我们可以通过获得某元素的POSITION来访问它。
本程序中主要用到的函数有:GetHeadPosition()——获取链表首元素的POSITION;AddTail ()——向链表尾部添加新的元素;GetNext(POSITION&rPosition)返回当前rPosition指向的元素,并使rPosition指向下一个元素。
设置定时器、销毁定时器SetTimerO函数来设置定时器,控制每隔多少毫秒执行一次什么任务。
用Ki11Time()函数来销毁定时器。
双缓冲技术为了避免窗体频繁闪烁,引入双缓冲技术。
双缓冲的原理是先建立一个内存DC,捋游戏对象绘制到内存DC上,再一次性的把内存中绘制好的图形“拷贝”到设备DC上。
c++实训报告(飞机大战)

此次实训的飞机大战游戏其中的技术主要就是一些函数、内存释放和双缓冲技术。
2.1 透明贴图函数(技术一的名称)
此次实训中用于贴图的函数: LoadImage(CImageList& imageList,UINT bmpID,COLORREF crMask,int cx,int cy,int nInitial) //此函数主要用于将图片放入图像链表 imageList 中。 img_Bomb.Draw(pDC,0,m_m_ptPos,ILD_TRANSPARENT) // 此 函 数 主 要 是 讲 img_Bomb1 链表中的图像显示在 pDC 这个句柄中。ILD_TRANSPARENT 表示是透明贴图。 其中主要就是 CImageList 图像列表。它是相同大小图像的一个集合,每个集合中均以 0 为 图像的索引序号基数,图像列表通常由大图标或位图构成,其中包含透明位图模式。可以利 用 WINDOWS32 位应用程序接口函数 API 来绘制、建立和删除图像,并能实现增加、删除、替 换和拖动图像等操作。
3
信息科学与工程学院软件实践实训报告
2.3 获取矩形区域函数
CRect rc; //定义 GetClientRect(&rc); // 获 取 其 矩 形 区 域 获 取 结 果 课 为 : rc.Width() // 矩 形 区 域 的 宽 度
rc.Height() //矩形区域的高度 CRect tmpRect; tmpRect.IntersectRect(&bRect,eRect))//判断两个矩形是否有交接
实训报告
飞机大战游戏设计与开发
专业名称:__________ ____________
班
级:__________________
程序设计综合实践 飞机大战 实训报告

[在此处键入]实训报告飞机大战游戏设计与开发专业名称:班级:学号:信息科学与工程学院二零一八年七月目录1. 概述 (3)2. 相关技术 (3)2.1 碰撞检测 (3)2.2 COblist链表 (3)2.3 双缓冲技术 (4)2.4 背景滚动 (4)2.5 爆炸动画的实现 (4)2.6定时器的使用 (4)3. 总体设计与详细设计 (4)3.1 系统模块划分 (4)3.2 主要功能模块 (5)4. 编码实现 (7)5. 实训中遇到的主要问题及解决方法 (42)6. 实训体会 (43)1. 概述本次实训任务是以visual studio 2017为环境,利用MFC和C++编写一个飞机大战游戏。
其实现的主要功能为:实现游戏对象的爆炸特效,界面背景切换,文字提示和血条显示功能,奖励机制(血包、护盾、僚机、武器升级),大招和无敌模式等。
通过方向键控制战机移动,空格键发射子弹,击毁敌机可以得分。
游戏中可以按“X”开启或关闭无敌模式。
按“P”可以暂停。
游戏设有能量槽,能量不断积累,超过一半可以按“Z”键使用大招,大招为全屏攻击。
玩家收到攻击血量减少,血量为0游戏结束,显示“Game Over”,可以按“R”复活,继续游戏。
游戏设有关卡机制,每关开始一段时间后出现boss。
击败boss进入下一关。
boss有三种,难度依次增加。
第一种boss发射直线子弹,第二种boss发射散射子弹,第三种boss 两种子弹随机发射。
前三关背景图和boss固定,之后背景图与boss随机生成。
游戏中随机出现四种道具:血包:可以恢复一定的血量。
护盾:一段时间内无敌。
武器升级:升级玩家的武器,共三个等级。
僚机:获得一个僚机。
2. 相关技术2.1 碰撞检测游戏中需要处理一系列的碰撞,在处理碰撞时,可以认为每个对象是与位图大小相同的矩形,用Crect类的GetRect函数获取我方战机的矩形与敌机子弹矩形,然后新建一个矩形并且调用IntersectRect(&bRect,mRect)再用if条件语句判断,若矩形区域重叠不为空,则视为碰撞,在if语句中填写实现碰撞后的功能。
飞机大战实训日记

飞机大战实训日记
1. 第一天的实训主要是了解飞机大战游戏的基本操作和规则,包括如何控制飞机移动和射击,如何进行升级和购买武器等。
2. 在第二天的实训中,我们开始进行游戏的各种模式练习,了解不同模式的特点和游戏策略。
3. 第三天的实训中,我们开始进行组队游戏,分工合作,制定战术,更好地完成各种任务和挑战。
4. 在第四天的实训中,我们开始进行实际的比赛,与其他小组进行对抗,锻炼自己的竞技能力和团队合作能力。
5. 第五天的实训中,我们对比赛过程中出现的问题进行了总结和反思,分析自己的不足之处,制定下一步的改进方案。
6. 经过一周的实训,我们的游戏水平和团队合作能力都有了很大提高,已经能够独立完成各种任务和挑战。
7. 在实训过程中,我发现自己最大的问题是对游戏策略的理解不够深刻,需要更加努力的学习和实践。
8. 实训期间我们也注意到一些游戏中的问题和难点,需要更加深入的学习和研究,为今后的游戏发展提供更好的思路和方案。
9. 最后的比赛让我们深刻认识到团队合作和个人能力的重要性,大家都非常努力地为团队争取胜利,这样的经历让我们受益匪浅。
10. 在未来的实践过程中,我们希望能够更加深入地学习飞机大战游戏的各种技巧和策略,为团队的发展和个人能力的提升做出更多的努力。
飞机大战课设报告

飞机大战课设报告飞机大战是一款经典的游戏,也是计算机科学中常见的课设项目之一。
在这个项目中,我们需要设计一个能够实现基本飞机大战功能的程序,包括游戏场景,敌人飞机,玩家飞机以及子弹等元素。
在本文中,我们将介绍飞机大战的实现原理以及我们的设计思路。
一、游戏场景的实现游戏场景是飞机大战中最基本的元素之一。
我们需要在程序中创建一个游戏窗口,用于展示游戏场景。
在窗口中,我们需要绘制背景图像,以及玩家飞机和敌人飞机等元素。
为了实现更加真实的游戏体验,我们还可以添加背景音乐和音效。
二、敌人飞机的实现在飞机大战中,敌人飞机是玩家需要消灭的目标。
我们需要在程序中创建敌人飞机,并控制其在游戏场景中的运动轨迹。
为了增加游戏难度,我们可以让敌人飞机在不同的高度和速度上运动,同时还可以添加不同种类的敌人飞机,例如飞行速度更快或者攻击力更强的飞机。
三、玩家飞机的实现玩家飞机是游戏中最重要的元素之一。
我们需要在程序中创建玩家飞机,并控制其在游戏场景中的运动轨迹。
为了让玩家更好地操作飞机,我们还可以添加键盘控制功能,例如向上或向下移动、向左或向右转向等。
四、子弹的实现子弹是玩家攻击敌人飞机的主要武器。
我们需要在程序中创建子弹,并控制其在游戏场景中的运动轨迹。
为了增加游戏体验,我们还可以添加不同种类的子弹,例如攻击力更强或者射程更远的子弹。
五、游戏逻辑的实现游戏逻辑是飞机大战中最重要的部分之一。
我们需要实现游戏的开始和结束逻辑,例如游戏开始前的介绍页面和游戏结束后的排名页面。
同时,在游戏过程中,我们还需要实现敌人飞机的生成和移动、玩家飞机的控制和移动、子弹的生成和移动以及碰撞检测等功能。
六、总结在本文中,我们介绍了飞机大战的实现原理以及我们的设计思路。
通过以上的步骤,我们可以实现一个基本的飞机大战游戏,并在程序中添加更多的功能和元素,以实现更加完整的游戏体验。
飞机大战不仅仅是一款游戏,更是一个综合性的课设项目,可以让我们更好地掌握计算机科学中的相关知识。
飞机大战游戏课程设计报告

飞机大战游戏课程设计报告一、课程目标知识目标:1. 学生能理解并掌握编程语言的基本语法和结构,如变量、循环、条件语句等。
2. 学生能运用所学的编程知识,设计和开发一个简单的“飞机大战”游戏。
3. 学生能理解游戏设计中的数学原理,如坐标系统、碰撞检测等。
技能目标:1. 学生能够运用编程工具(如Scratch或Python等)进行游戏设计和开发,提高编程实践能力。
2. 学生通过团队协作,培养沟通与协作能力,学会共同解决问题。
3. 学生能够运用创新思维,设计和优化游戏功能,提高游戏的可玩性和趣味性。
情感态度价值观目标:1. 学生培养对计算机编程的兴趣和热情,激发学习动力。
2. 学生在游戏设计和开发过程中,培养自信心和成就感,增强自主学习能力。
3. 学生通过游戏设计,体会团队合作的重要性,学会尊重他人,培养良好的团队精神。
课程性质:本课程为信息技术学科,以实践为主,注重培养学生的动手能力和创新思维。
学生特点:五年级学生,对新鲜事物充满好奇心,具备一定的逻辑思维能力,喜欢动手操作。
教学要求:教师应引导学生通过自主学习、合作探究的方式,完成游戏设计和开发任务,关注学生的学习过程,及时给予反馈和指导,提高学生的综合素质。
在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容本课程教学内容依据课程目标进行选择和组织,主要包括以下几部分:1. 编程基础知识:- 变量的定义和使用- 常用的数据类型- 程序流程控制(条件语句、循环语句)- 函数的定义和调用2. 游戏设计原理:- 游戏的基本元素(玩家、敌人、子弹等)- 坐标系统与运动控制- 碰撞检测与游戏逻辑3. 编程工具与操作:- Scratch或Python编程环境的使用- 图形和角色的绘制与导入- 事件处理与声音效果的应用4. 项目实践:- 设计并开发“飞机大战”游戏- 团队合作与分工- 游戏测试与优化教学内容安排和进度:第一课时:介绍编程基础知识和游戏设计原理,让学生了解课程目标和要求。
飞机大战项目实训报告

飞机大战项目实训报告一、项目背景随着计算机技术的不断发展和完善,游戏设计成为了计算机软件开发的重要组成部分之一。
针对此,本实训项目选择了一款单机游戏——飞机大战。
二、项目概述《飞机大战》是一款盛行于各大游戏平台的街机游戏,其玩法简单,操作容易上手,可单人、多人游戏。
玩家通过控制战斗机的移动与攻击,击败敌机、坦克、大型BOSS等,累计积分并提高自己的得分记录。
三、项目分析1.游戏玩法(1) 游戏起始界面:菜单栏、游戏设置、游戏排名、游戏开始、游戏介绍等。
(2) 游戏主界面:飞机、子弹、敌机、敌机轨迹、背景、音效等。
(3) 游戏结束界面:游戏得分、游戏排名、重新开始、返回主界面等。
2.技术要点图形处理、音频处理、基本算法、游戏逻辑、前端UI设计等。
四、开发流程1.需求分析首先要对游戏界面、游戏机制等进行详细的分析,梳理各个功能模块,并且根据分析结果来进行程序开发。
2.原型设计设计游戏UI框架,并进行渲染效果分析。
3.编码实现搭建游戏框架、实现游戏逻辑和算法,并对游戏进行调试。
4.测试调试经过编码实现后,对游戏进行测试和调试,确保游戏实现效果良好。
5.发布上线游戏开发完成后,进行打包、发布和上线操作。
五、技术要点1.图像处理:游戏中大量使用了图片素材进行操作,包括:飞机、子弹、敌机图片素材、背景图片处理等。
2.音频处理:音频处理主要用于游戏过程中背景音乐、游戏音效等相关操作。
3.基本算法:本游戏使用了几何线段相交法、多边形拐角点判断法等进行处理。
4.游戏逻辑:游戏逻辑主要包括游戏场景构建、游戏胜负判定等操作。
5.前端UI设计:游戏前端UI设计用于游戏的用户交互,即各种按钮、控件的设计和实现。
六、总结通过此次实训项目,我对游戏开发有了深入的了解和认识。
在项目的实践过程中,我逐步掌握了游戏开发的流程、技术要点等,也通过不断的学习和实践提高了自己的编程水平。
在以后的开发中,我需要更加深入的学习和掌握游戏开发中的各种技巧和实践经验,不断提高自己的编程水平和能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计综合实践实习报告学院名称专业班级学生姓名学号指导教师山东科技大学一、实习题目:飞机大战游戏的设计与实现二、实习时间:18周~ 19周实习地点:三、实习任务:1.基本功能要求:飞机大战游戏必须运用透明贴图、按键处理、定时控制、双缓冲技术等技术实现战机(玩家)和敌机(计算机)对战功能2.扩展功能:在完成基本功能基础上可以增加双人对战、游戏积分制、声音效果、多种子弹类型、客机类型、游戏关卡设计、多种类型敌机、游戏中间结果存贮等功能四、小组分工说明:自己完成五、实习成绩六、指导教师对实习的评语:指导教师(签章):2015年月日目录1.概述 (4)1.1实训项目简介 (4)1.2实训项目功能说明 (4)2.相关技术 (5)2.1透明贴图技术 (5)2.2 获取矩形区域并判断两个矩形区域是否相撞 (5)2.3鼠标控制我方战机 (5)2.4 Windows定时器技术 (6)2.5 CObList链表 (6)2.6对话框的应用 (7)2.7双缓冲技术 (7)3.需求分析 (7)3.1功能需求分析 (7)3.2 数据需求分析 . (7)3.3 行为需求分析 (7)3.4 其他需求 (7)4.总体设计与详细设计 (8)4.1 系统模块划分 (8)4.2 主要功能模块 (8)4.2.1系统主要类图 (8)4.2.2飞机大战游戏设计执行流程图 (8)4.3 扩展功能设计思路 (9)4.4 软件结构设计体会 (9)5.编码实现 (10)5.1绘制游戏背景位图的程序 (10)5.2各个游戏对象的绘制 (10)5.3我方战机位置的动态控制 (12)5.4各个游戏对象碰撞的实现 (13)5.5游戏界面输出当前游戏信息 (15)6.测试情况说明 (17)6.1主要模块测试情况 (17)6.2 主要功能测试情况 (18)7. 实训中遇到的主要问题及解决方法 (19)8.实训收获与体会 (19)1. 概述1.1实训项目简介本次实训项目是应用MFC编程完成一个界面简洁、运行流畅、操作简单、易于上手的飞机大战。
该飞机大战项目运用的主要技术是MFC编程中的一些函数、链表、贴图技术。
1.2实训项目功能说明1.2.1基本功能(1)设定我方战机有速度初值,可通过键盘方向键控制我方战机位置,空格键控制我方战机发射导弹。
(2)游戏界面中敌机出现的位置、敌机导弹的发射是随机的,敌机有不同的速度。
(3)敌机以及敌机发射的导弹,一旦超出游戏界面边界,则删除出界对象。
(4)敌机导弹击中我方战机、我方战机导弹击中敌机、我方战机与敌机碰撞均会产生爆炸效果。
并且产生爆炸效果后,敌机、敌机导弹、我方战机、我方战机导弹消失,我方战机生命值减一,得分加五分。
1.2.2附加功能(1)为游戏界面添加了背景图片。
(2)为游戏设置积分制,每击落一架敌机或与敌机相撞得分加5分。
(3)敌机从游戏界面上界和下界随机飞出。
(4)为游戏设置关卡制,每得分增加100分自动进入下一关,每进入新的一关,通过减缓我方战机速度来逐渐增加游戏难度。
(5)添加无敌模式,当得分达到1000分后,按“Z”键即可开启无敌模式。
开启无敌模式后,我方战机生命值增加到999,并且被敌方战机击中或与敌方战机相撞生命值不减少,击落敌机分数继续增加。
(6)游戏界面显示当前游戏信息,游戏界面左上角分别显示“我的分数、战机生命值、开启无敌模式还需杀敌的数量、关数”,右上角显示“是否开启了无敌模式”,当达到开启无敌模式的条件后,右上角显示“按Z键开启无敌模式”,开启无敌模式后,右上角变为“无敌模式已开启”,右下角显示开启无敌模式需达到的条件,当每进入新的一关,游戏界面中心显示“玩的不错,进入第X关”。
(7)增加鼠标左键控制我方战机发射导弹的功能。
(8)当我方战机炸毁后,弹出对话框提示玩家是否重新开始游戏。
2. 相关技术2.1 透明贴图技术绘制透明位图的关键就是创建一个“掩码”位图(mask bitmap),这个“掩码”位图是一个单色位图,它是位图中图像的一个单色剪影。
(1)DDB可以用MFC中的CBitmap来表示,而DDB一般储存在资源文件中,在加载时只需通过资源ID号就可以将图形装入。
(2)BOOL CBitmap::LoadBitmap(UINT nIDResource)可以装入指定DDB,但是在绘制时必须借助另一个和当前绘图DC兼容的内存DC来进行。
(3)通过CDC::BitBLT()绘制图形,同时指定光栅操作的类型。
2.2 获取矩形区域并判断两个矩形区域是否相撞首先,使用CRect定义一个对象,然后使用GetRect(&对象名)函数,获取界面的矩形区域rect.Width() 为矩形区域的宽度,rect.Height()为矩形区域的高度。
使用IntersectRect(&,&))函数来判断两个源矩形是否有重合的部分。
如果有不为空,则返回非零值;否则,返回0。
2.3鼠标控制我方战机WM_LBUTTONDOWN(鼠标左键被按下)对应的函数为OnLButtonDown (UINT nFlags,CPoint point)当鼠标左键被按下时,我方战机两翼开始发射导弹。
void CPlaneGameView::OnLButtonDown(UINT nFlags, CPoint point){// TODO: 在此添加消息处理程序代码和/或调用默认值CView::OnLButtonDown(nFlags, point);if( is_Pause == 0){CBomb *BombOne=new CBomb( myplane->GetPoint().x+10,myplane->GetPoint().y+35,1);ListBomb.AddTail(BombOne);CBomb *BombTwo=new CBomb( myplane->GetPoint().x+70,myplane->GetPoint().y+35,1);ListBomb.AddTail(BombTwo);}}2.4 Windows定时器技术Windows定时器是一种输入设备,它周期性地在每经过一个指定的时间间隔后就通知应用程序一次。
程序将时间间隔告诉Windows,然后Windows给您的程序发送周期性发生的WM_TIMER消息以表示时间到了。
本程序中使用多个定时器,分别控制不同的功能。
在MFC 的API函数中使用SetTimer()函数设置定时器,设置系统间隔时间,在OnTimer()函数中实现响应定时器的程序。
2.5 CObList链表MFC类库中提供了丰富的CObList类的成员函数,在CPlaneGameView.h文件中声明各游戏对象与游戏对象链表:(1)创建各游戏对象://创建各游戏对象CMyPlane *myplane;CEnemy *enemy;CBomb *bomb;CBall *ball;CExplosion *explosion;(2)创建储存各游戏对象的游戏链表://创建存储游戏对象的对象链表CObList ListEnemy;CObList ListMe;CObList ListBomb;CObList ListBall;CObList ListPeople;CObList ListExplosion;2.6对话框的应用当我方战机炸毁时,弹出是否重新开始游戏的对话框。
对话框的应用过程如下:(1)资源视图下,添加Dialog对话框。
然后添加使用到的控件,并修改控件的ID。
(2)为对话框添加类,在对话框模式下,点击项目,添加类。
(3)在类视图中,为对话框类添加成员变量(控件变量)。
设置变量的名称、类型、最值等信息。
(4)在资源视图菜单中,选择相应的菜单项,右击添加时间监听程序,设置函数处理程序名称。
(5)在处理程序函数中添加相应的信息。
2.7双缓冲技术当数据量很大时,绘图可能需要几秒钟甚至更长的时间,而且有时还会出现闪烁现象,为了解决这些问题,可采用双缓冲技术来绘图。
双缓冲即在内存中创建一个与屏幕绘图区域一致的对象,先将图形绘制到内存中的这个对象上,再一次性将这个对象上的图形拷贝到屏幕上,这样能大大加快绘图的速度。
双缓冲实现过程如下:1、在内存中创建与画布一致的缓冲区2、在缓冲区画图3、将缓冲区位图拷贝到当前画布上4、释放内存缓冲区3.需求分析● 3.1功能需求分析基本功能:键盘控制战机移动、发射导弹,战机、敌机爆炸拓展功能:游戏界面背景,鼠标控制战机发射导弹,积分制,过关制,对话框弹出,无敌模式● 3.2 数据需求分析我的分数、战机生命值、击落敌机数目、关数实时显示。
● 3.3 行为需求分析键盘方向键控制战机移动,空格键控制战机发射导弹,鼠标左键控制战机发射导弹,键位之间互不冲突,战机移动不卡顿。
● 3.4 其他需求游戏界面简洁,游戏操作简单易于上手。
4.总体设计与详细设计4.1 系统模块划分游戏系统模块模块名称功能简介应用程序对象游戏程序的加载、游戏对象的绘制、游戏规则的调用、玩家的键盘事件获取我方战机对象战机类敌机对象敌机类我方战机导弹对象我方战机导弹类敌机炸弹对象敌机炸弹类爆炸对象爆炸类4.2 主要功能模块4.2.1系统主要类图4.2.2飞机大战游戏设计执行流程图. 除实现最基本的人工智能对战功能之外,还增加人性化的设计,使游戏的可玩性更高。
4.3 扩展功能设计思路1、为游戏添加背景,是游戏更加美观。
2、为使画面更能实时显示当前游戏信息,为游戏界面添加“我的分数”、“战机生命”、“关数”等实时变化的信息。
3、为使游戏更具可玩性,为游戏添加无敌模式。
4.4 软件结构设计体会软件结构设计部分是软件工程开发过程的重要部分,设计内容的好坏关系到整个软件的优劣,在这次飞机大战项目开发中,对结构设计中出现的种种问题以及解决方法,加深了对软件结构设计方法的理解,熟悉了对其的应用,从宏观和细节处展示了整个软件的体系结构,使整个软件更具层次感。
5. 编码实现5.1绘制游戏背景位图的程序CDC *pDC = GetDC();//获得矩形区域对象CRect rect;GetClientRect(&rect);//设备环境对象类----CDC类。
CDC cdc;//内存中承载临时图像的位图CBitmap bitmap1;//该函数创建一个与指定设备兼容的内存设备上下文环境(DC)cdc.CreateCompatibleDC(pDC);//该函数创建与指定的设备环境相关的设备兼容的位图。
bitmap1.CreateCompatibleBitmap(pDC, rect.Width(), rect.Height());//该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。