版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
如不慎侵犯了你的权益,请联系我们告知!毕业设计(论文)游戏(坦克大战)软件的开发——游戏过程一如不慎侵犯了你的权益,请联系我们告知!毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论 文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供。如不慎侵犯了你的权益,请联系我们告知!如不慎侵犯了你的权益,请联系我们告知!声明师的指导下独立进行研本学位论文作者完全了解学校有关保留、使用学位论文的规定,构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位 按学校规定处理。作者签名:导师签名:日如不慎侵犯了你的权益,请联系我们告知!一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神度4、研究方法的科学性;技术线路的可行性;设计方案的合理性5、完成毕业论文(设计)期间的出勤情况二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?2、是否完成指定的论文(设计)任务(包括装订及附件)?三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义3、论文(设计说明书)所体现的整体水平如不慎侵犯了你的权益,请联系我们告知!年月日如不慎侵犯了你的权益,请联系我们告知!如不慎侵犯了你的权益,请联系我们告知!阅教师评阅书一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?2、是否完成指定的论文(设计)任务(包括装订及附件)?二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义3、论文(设计说明书)所体现的整体水平年月日如不慎侵犯了你的权益,请联系我们告知!教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:1、毕业论文(设计)的基本要点和见解的叙述情况二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?2、是否完成指定的论文(设计)任务(包括装订及附件)?三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义3、论文(设计说明书)所体现的整体水平格教研室主任(或答辩小组组长):年年(签名)月日(签名)月日如不慎侵犯了你的权益,请联系我们告知!本论文第一章是介绍国内外游戏的发展状况,第二章介绍一些游戏编程的技术和原个总体的设计,第四章介绍了详细设的如不慎侵犯了你的权益,请联系我们告知!ct如不慎侵犯了你的权益,请联系我们告知! 如不慎侵犯了你的权益,请联系我们告知!2.4.6动态和静态对象生命期(以及所有权) 17 如不慎侵犯了你的权益,请联系我们告知! 如不慎侵犯了你的权益,请联系我们告知! 如不慎侵犯了你的权益,请联系我们告知! 如不慎侵犯了你的权益,请联系我们告知!等一系列经典的小游戏开始,然后就是三国志之类的大型一点的,到现在的电脑游戏,单机游戏,到网络游戏,这么一个过程,游戏其实已经不知不觉的进入了我们电脑游戏在当今,已经十分普遍了,游戏玩家也比较多。特别是网络游戏,因为其剧情的有趣性,游戏画面的美观,招式的华丽,等一系列原因,吸引了不少游戏玩家,特别是3D网游的推出,使得网络游戏发展进入了一个新时期。游戏是怎么发展起来的?国内外游戏的发展情况是什么样的呢?下面将会给你答案。1背景Bushnell设计了世界上第一个业务用游戏机(俗名街机),叫做《电脑空间》 具有强大引力的星球向对方发射导弹进行攻击。两艘战舰在战斗的同时还必须注意克服引力,无论是被对方的导弹击中还是没有成功摆脱引力,飞船都会坠毁。这台游戏机用一台黑白电视作为显示屏,用一个控制柄作为操作器,不过由于市场因素这款游戏以失败告终。他们获得了成功,世界上第一台被接受在业务用机就是Atari推出的乒乓球为题材操作器(方向盘、油门、刹车等)。在这个游戏里,玩家需要扮演一个黑夜里驾驶在告诉公路上狂奔的疯狂车手。这是游戏历史上第一个3Dw如不慎侵犯了你的权益,请联系我们告知!如不慎侵犯了你的权益,请联系我们告知!,而最早的电脑游戏可以追溯到1972年,一是他加入了幻想成分(Imagination)和谜题(Puzzle)。eII缺乏是的当年的电脑程序精密严谨的可怕。可以说,当年的程序员才是真正懂得狂eII别是如此之小,可以说每一就了一大批游戏程序设计高手。而现在的家用电脑变得更像一台家用电器。王子”绝对可以说是电脑游戏动作冒险类(ACT)的第一作,它代表了当时电脑技术的最高水平。当年的玩家看到栩栩如生上串下跳的王子都不禁惊叹不已,故事讲述的是王子为了拯救公主获得爱情而和罪恶的苏丹王斗争,在游戏中王子需要跑过各种奇怪诡秘的机关,小心地避过上下活动的柱子和深坑里的尖刺,用一把阿拉伯弯刀杀死各种敌人。如不慎侵犯了你的权益,请联系我们告知!1983年,如本的任天堂(Nintendo)和世嘉(Sega)分别推出了自己的家用游娶公主的故事。任天堂凭借的垄断地位。虽然在最初几年里,PC上的软件数目还无法和AppleII抗衡,不过。公司简介该公司的足迹。但任天堂(Nintendo)如不慎侵犯了你的权益,请联系我们告知!如不慎侵犯了你的权益,请联系我们告知!世嘉(Sega)人快打》的销量远远超出了任天堂的合家欢版。北斗神拳、战斧、太空哈里等都是光荣(KOEI)西屋(WESTWOOD)西屋是《沙丘》系列、《命令与征服》系列、《大地》(黑暗王座)系列等最个浑厚的男声。EA的擅长项目就是体育类游戏。《FIFA》系列、《NBA》系列都KONAMI如不慎侵犯了你的权益,请联系我们告知!想要比较客观的认识中国的游戏教育现状首先就要对世界上游戏产品比较发达的地区进行一定的了解,在这些地区存在的游戏教育模式与形式都是我们非常好们略有区别,正如美国的老师在进行教师专业培训之前必须完成美的制作人才培训更注重的是基础和能力。在欧美的职业教育训策划人才相对较少,欧美的策划人才基本是由程序员转型而断层,是流及资源共享要比国内强很多倍。解学习后将所有的心得向所有从业者公开。如不慎侵犯了你的权益,请联系我们告知!如不慎侵犯了你的权益,请联系我们告知!专门的策划者培训专业在日本同样极为少见,日本的游戏策划人员大多由美术人员转型而成,极少有纯粹的游戏策划者,这也是日本的游戏艺术性更为明显的主要原不过与欧美相比,日本存在有不少面向游戏制作的职业培训机构,这应当与日主要的培训方向也是程序和美术。似,不过由于台湾从单机时代开始就一直发展得较为稳定平缓,因此在游戏人才培养方面,台湾甚至出现了官僚的情况。这也是台湾公司近年来一直在国内开设研发机构的原因之一,因为在台湾本土,真正的游戏开发人才,很难从游戏培训机构获取,反倒不如在大陆这样一个庞大的人才库中取其精华。相比而言,台湾的游戏制作教育业发展相对成熟,许多游戏制作公司都有自己的人才培训中心,而政府也有相对应的扶持行为。综合地来看,台湾的游戏制作教育业在体系、师资和SDK三大方面比国内的向之一,而且相比引入韩国的体系,在付出方面也会稍微好一些。来说,与国内现状差异是从欧美到台湾逐渐递减的,因此如果机构要进行师资力量及课程体系的引入,选择性也要按顺序递增,即首先考虑台湾,其次考虑如不慎侵犯了你的权益,请联系我们告知!游戏行业的发展已有多年的历史,但细分起来国内电脑游戏的起步却实在了几个可以“游戏”起来的游戏,那时候国内还没有互联网,传播渠道有着很大的局果”的高等学府如“感冒”般流传。1993年以后,国内有了以宣传电子(电脑)游戏一材曾做过相关报道)。如不慎侵犯了你的权益,请联系我们告知!几个回合测试的《烈火文明》同样让人心有不甘。背靠“中青旅”的科技公司资金不可谓不雄厚,开发力量也算得上较强,想来发展后劲会不错,但不知为什么做出来如不慎侵犯了你的权益,请联系我们告知!腾图——跟前导一样属于老字号,《水浒传之火之魂》算是一部不可多得的佳作,可惜不久之后就退出了游戏制作行业。其手下的工作室倒是历经艰难地生存下创意鹰翔——一部《生死之间》便名声大振,工作态度精细是这家游戏工作室一是这类公司的致命弱点。洪恩软件——金洪恩是国内的知名教育软件制作者,今年借着一部《自由与荣耀》突然出现在国产游戏制作者的行列中,听说这个游戏在国内各地的游戏室中还一个未知数,必竟还没有哪个游戏制作公司能过得喜笑颜开的。但不论怎么说,好也罢、坏也罢,在国产游戏刚刚起步阶段,我们已经看到了越高。因此,很多玩家已经不能容忍电脑游戏创作方面的平淡无奇、波澜不兴,这对国产游戏本身也是一种无形的压力。综观国内电脑游戏创作近几年的积累过程,可以说每一个开发商和制作者都在以清醒的头脑冷静地分析着游戏中所蕴含的思想,分析着游戏中可表现的艺术,分析着游戏能够挖掘和开启的潜在市场,分析着电脑游戏可能为我们送来的文化气息。既分析着眼前的困难,也分析灿烂的前景。的比电脑游戏制作能否出精品的关键首先是有一个好“本子”,这一方面需要游戏策划者具有非凡的才华,同时也汇聚了众多参与者的远见卓识。如不慎侵犯了你的权益,请联系我们告知!资源的优化配置也是使游戏作品成为精品的重要环节。在制作公司条件许可的情况下,投入最理想的人力和物力,造就对极致追求的优势。从某种意义上讲,硬时的“工作站”还只是PⅡ/PⅢ级的。只因美工、音乐等方面的刻意难道“俄罗斯方块”的制作技术含量会比我们现在动不动就3DMAX的D3DGAME国内电脑游戏电影始终是电也只有像这样各具其味的游戏和电影才不会引起玩家眼睛和心灵的反感。我们无法奢求国内的游戏公司、游戏制作人能在一两年中具备如EA、UBI等欧美超级游戏公司的实力,况且即使是这样实力规模的公司也保不准哪天就会被比它更大的家伙收购,但至少有一种精神还是要体现的。这种精神小弟以为就是“敬业”。电脑游戏的开发与制作其实也是一项比较复杂的系统工程,做游戏的过程也绝非玩游戏那样简单,游戏制作本身是一项充满灵性与艰涩的事,既然是一个艰苦的过程,就必须勤勉,容不得半点懈怠。如果年轻的游戏开发者不幸染上中国男足的传染病,恐怕,盗版固然会毁去国内游戏一部分市场,但国外游戏在国内不也是面临同样的压力吗?特别是对于盗版问题,短期内可能我们无法依赖法律和政府在这方面予以全面电脑游戏是一种新兴的文化现象,也是一个新型的朝阳产业。作为这个文化类别的后来者,我们与发达国家、发达地区相比,无论是理论、开发、研究还是投入方面都仍有一段不算小的距离,但当务之急需要解决的也许还不仅仅是上述问题,游戏开发者们对所从事的这项工作的敬业态度与自省、自重可能比玩家口袋里的银子还要可贵得多。网络游戏:与单机游戏日渐衰落正相反的是,网络游戏方兴未艾,遍地开花.国内如不慎侵犯了你的权益,请联系我们告知!戏制作者在游戏制作理念上的不足和困乏如不慎侵犯了你的权益,请联系我们告知!F如不慎侵犯了你的权益,请联系我们告知!火热,游戏已经逐渐形成了一个市场。当然,市场就会有竞争,有成功者,当然也有失败者,成功有他成功的原因,失败当然也有他的原因。如果我能够让游戏去吸引玩家,那么,我们开发出来的游戏就会占有市场,就能在竞争中获得胜利。如何去开发出一个成功的游戏呢?什么样的游戏能够成功呢?等等……2.1游戏类型现在,游戏类型多如政治许诺(有些已经销声匿迹了),但可以将它们归入以:质许不像采用第一视角类游戏那戏中的人工智能水平位于所有定Tekken(铁拳)将格斗类游戏在家庭游戏机市场上发扬光大。格斗类游戏在PC机上不是十分流行,这或许要归咎于游戏控制器的界面问题以及需要两人玩才更有乐如不慎侵犯了你的权益,请联系我们告知!如不慎侵犯了你的权益,请联系我们告知!机械模拟类——此类游戏包含各种驾驶、飞行、赛艇、赛车、坦克战斗模拟以及读者能够想像到的任何其他种类。绝大多数此类游戏一直是3D的(虽然直到最生态模拟类——这个游戏类型相当新,除了现实世界本身外,再没有其他类似蚁)等系列游戏。此类游戏允许玩家扮演主宰各个物种的神,或是控制某种人工系e类方法,所以我将具有战略元素(有时是回合制的)的划入此类,如Warcraft(魔交互式故事类——这一类别包括类似Myst(神秘岛)的游戏。基本上,这些游,总是有 (贪食蛇)、Frogger(青蛙人)等老游戏进行了重新制作。是归于此类的众多游戏中的沧海一粟。2.2游戏开发的各个阶段如不慎侵犯了你的权益,请联系我们告知!早期阶段在早期阶段(概念、原型、可玩性阶段),架构的主要焦点将集中在如何让程序先跑起来上面。在这些阶段,与创建概念性的示不对比,架构有可能看起来不那么至要。然而,如果架构的设讨没有为以后阶段的游戏开发发着想的话,以后你就会己已经没有时间来做游戏的重构了。.2.2生产阶段在生产阶段,查看器和编辑器—类的工具将很有用。查看器可以用米让开发人员看到自己的内容在游戏小会是什么样子的。编辑器可以使得开发人员能对游戏的会要求把查看器和编辑器的功能集成到游戏中。要做到这一点,我们必须同时为顾客和把它们的开发相对独立出来。2.2.3生成包装阶段在产品包装阶段,我们必须把所有的游戏模式和显示集成为一个无缝的产品。这个集成过程有时候会为日程延迟或者原设计方案的修改所累。如果有一个架构能程进行得更加顺利。.2.4测试阶段在测试阶段,我们可能需要能在不同的模式或某些点进入游戏。如此就需要我们的架构拥有此类的灵活性,能把设置这些模式和进入点的工作变得容易起来。我们也有可能需要在游戏中能切换不同的驱动。如果我们的架构把游戏和某种固定的视频技术绑定了,那么切换视频驱动就不可能了。不管我们是否需要提供驱动切换的功能,我们至少要在架构中间加入日志功能以协助兼容性测试。2.2.5发布阶段当我们到达发布阶段以后,游戏开发小组可能还要继续进行游戏的移植,或者会有其他的开发人员来做移植工作。不管如何,如果我们的架构移植到其他平台很困难的话,这就会造成延迟。我们希望移植小组的时间是花在为每个平台开发新特性和特性增强上面,而不是花在研究如何让它跑起来的问题上面。如不慎侵犯了你的权益,请联系我们告知!2.3游戏一般循环过程辑,被用来产生游戏的下一帧动画。这个图像通常放在不可见的缓存区(offscreenbufferamerate如不慎侵犯了你的权益,请联系我们告知!2.4游戏一般架构我们如果想让架构在多个游戏里面都能使用,那就需要让架构拥有游戏独立性。然而,如果我们只是要在一个游戏的几个平台上面使用架构的话,那也可以让部分架构和游戏的一些相关性。举个例子,如果游戏控制了一个特定类型的角色,根据角色状态的不同,它将表现出很多动态的视觉效果,我们渲染的代码可能需要访问游戏的相关状态,然后决定此角色是否需要渲染。这种做法可以减少系统接口的调用,从而简化代码并使速度提高。2.4.3对象组合与对象继承要想使架构结构晾好,方法之一就是使用模板方法这个设计模式,然后只创建一个应用类来派生类实例。如果这样做,我们就是要把类的初始化和销毁代码设计成其派生类可以重载的算法。这种设计模式被成为居于类的,因此它使用了类继承的方法来得到不同的行为。另外一个设计应用程序初始化和销毁步骤的方法是将其步骤分成一系列任务来处理。一个任务系统类可以用来调整任务的执行,一个资源系统类可以用来定位如不慎侵犯了你的权益,请联系我们告知!和管理任务列表和任务对象。现在我们使用是基于对象的模式,因此我们使用了对如不慎侵犯了你的权益,请联系我们告知!使用这样的任务系统意味着我们可以使用对象组合而不是集成的方法来创建一个架构。我们的任务系统通过任务的接口控制任务对象,而我们的任务则通过调用对象接口来工作。这同时也以为着我们的架构不会有一个倒置的控制结构,而这往往是使用模板方法所固有的特性。取而代之的是我们的任务对象会来控制软件。或许这个架构可说成是一个对象架构,而不是一个类架构,但是毫无疑问他是一个《设计模式》这本书上讨论了很多对象组合的有点,也着重提出了面向对象设1.对于接口编程,而不是对实现编程。2.尽量采用对象组合而不是集成。2.4.4基于帧的和基于函数的设计有很多类型的软件对于帧定时不关心,在这些软件中函数可能要花费数秒,数分钟或者更长的时间才能完成。这种基于函数的操作比基于帧的操作更容易编程实绝大多数游戏都必须有音频和视频方面的相应,还有在每帧里面计算许多动画和细节。没当一幅视频图像以及一段音频缓冲渲染的时候,我们也就创建了一帧。游戏可能以美妙50帧或者60帧的速度进行渲染。这种基于帧的操作要求游戏分在如不慎侵犯了你的权益,请联系我们告知!游戏总是由于一组相互关联的显示和它们之间的转移组成的,它们之间一般没有预定的顺序,取而代之的是由玩家来决定下一步将会发生什么。这就是一个动态操作的例子。我们让任务对象能访问任务系统和提交新任务,这样我们的架构就提2.4.6动态和静态对象生命期(以及所有权)在一个层次化的系统里面,我们可能会发现父类会拥有一些为其派生类所使用的对象,而派生类也会创建一些其父类一无所知的对象。通常这些对象的生命周期是出层次化的结构内定的,而且继承的子类也无法动态地创建和删除它们。在这种就比较乱了。为了解决这个问题,我们可以将对象所有权的管理责任分给资源系统权方面的混淆。我们可以在资源系统里面增加任务命令来使得这些对象的生命期动态化。我们程序的整个生命期都持有直集成在控制着我们,而且我。较地扁平,而且我们与如不慎侵犯了你的权益,请联系我们告知!2.5游戏设计中应该注意的问题调整盘,他就可以再次快速地找到它们。那些在培训上花费了一定时间(有时候相少。大致平如不慎侵犯了你的权益,请联系我们告知!2立即存盘的取舍最近很多游戏发布的时候缺少了一个至关重要的特性,与其他游戏特性的缺少相比,这个产生的用户抱怨是最多的。是什么东西会产生这么严重的印象呢?不是别的,就是游戏的任何地方都能存盘的特性。在任何需要的时候都能保存游戏,这然而,某些游戏是可以不需要这个功能的。如果你要求在其中的任何地方都能保存游戏的话,有些游戏就根本没有意义了。你能想象在泡泡龙(BubleBobble)能怪不是可以逃,游戏的难度就会大大降低,来说倒是说盘,此时很对整个游戏被省略掉的要在游戏中的任何地方都能存盘是一个让人头疼的任务——对于外行来说好像很简单,但是一档你深入进去着手来做的时候,你就会发现它会设计到一些难题。在一个游戏中,即使采用了很高明的对象重用策略,内存也会被分成碎片,而对象列表也会被搞的乱七八糟。因此,在任何时刻几乎都不可能搞清楚是否在内存中的某个地方某个对象正在被创建。解决此问题的一个方法是把游戏中的所有指针都换成句柄,而他们则可以利用一个查找表找出相应的对象来。不过,如果你没有使用句柄的话,还有另一个方法,那就是在存盘的时候把所有的指针转化都转化为句柄,然后在载入的时候在把句柄转化为指针。值得注意的是,这种方法要求在存盘之前与载入之后做一些额外工作。还有一个大问题就是判断每个对象应该保存些什么信息。一旦决定了以后,就需要对每个对象类型都编写一些函数来进行数据的读写。由于大多数游戏里都有很如不慎侵犯了你的权益,请联系我们告知!多类型的对象,因此这可能会是一个繁重的工作。此外,一旦有了任何数据结构的变化,所有的存盘记录就都没用了,而且还要编写信的代码。这就是为什么存盘功能往往被延期处理直到项目收尾才做的原因。在最坏的情况下,存盘的代码将没有如不慎侵犯了你的权益,请联系我们告知!.4独立于文化的游戏设计面是为了日标语言进行设计的之外,还要保证你的游戏不要在与文化相关的方面作任何不成立的假设。举个例子,如果你的游戏中的角色沿路的左边驾驶的话,美国玩家就会惊异地发现车辆居然从他们的右边迎面驶来,除非你能在开始就告诉他们这一点。还有,如果你在用户界面亡有个“呼叫”按钮使用了一个图标表示它的功能,那最好能使用一个相对通用的图标,而不要使用一个老式的2.5.5游戏设计与文化和政治敏感问题最后一个问题是文化和政治敏感件的问题。虽然很多游戏的场景是设置在一个就会违背文化传统或舌是政府标准。举个例子,如果你至开发一个有暴力主题的游戏的话,那就可能需要考虑把调子降低一点,或名是提供一个过滤的方法去掉可能的侵犯性的内容,这要视你针对的市场而定。如不慎侵犯了你的权益,请联系我们告知!3.1总体设计流程坦克游戏如不慎侵犯了你的权益,请联系我们告知!可以点击键盘设置,来设置坦克爆炸:自己的子弹打到了敌方坦克会爆炸,敌方坦克子弹打中自己坦克也坦克移动规则:如果到了边缘,碰到障碍,碰到对方的坦克,都不能继续往前移动,你可以改变方向来移动自己的坦克。游戏障碍物:当你移动到障碍物时,坦克便不能够再继续往前行,有的可以打敌人坦克:敌人会随机的上、下、左、右移动,以及发射子弹,敌人坦克移动游戏声音:坦克的每次移动,发射子弹,坦克爆炸都会有相应的声音,声音让游戏暂停与继续:当你有事的时候,需要暂停游戏,点击右边的暂停按钮,游戏便暂停了,再点击游戏继续。生命数的显示:在右上方,你可以看到敌人还有多少坦克生命,自己还有多少游戏打分:每打死一个敌人坦克,都会给一定的游戏分值。声音控制:点击右方的声音控制按钮来实现游戏声音的开关。游戏存取:当你有事或者遇到什么情况不能继续玩游戏你可以点击菜单项目的游戏速度设置:点击游戏速度,来实现游戏速度的设定。键盘设置:点击键盘设置,来设置你喜欢的控制键位。下一关:当把全部敌人都消灭则进入下一关,或者直接点击右下方的下一关图游戏结束:当自己的生命数为0,或者强行关闭。如不慎侵犯了你的权益,请联系我们告知!3.2接口设计这个游戏没用到外部接口,但是一些内部接口还是要作下介绍。该程序分为游:题况,等属性,存游戏的时候把这些属性保存起来,游戏恢复的时候把这些属性重新赋值题3.3界面设计如不慎侵犯了你的权益,请联系我们告知!如不慎侵犯了你的权益,请联系我们告知!4.1程序系统结构否否如不慎侵犯了你的权益,请联系我们告知!游戏开始游戏开始显示启动画面进入游戏界面用户操作系统响应生命数是否为0是游戏结束图4-1游戏(坦克大战)软件开发的总体流程图4.2功能实现4.2.1启动画面添加启动画面:游戏开始的时候有一个启动画面,主要给用户提供一个友好界面,一个好的启动界面,可以让用户对坦克游戏有一个比较好的印象;同时也给用如不慎侵犯了你的权益,请联系我们告知!1.插入组件2.修改位图3.修改ID修改ID:在CSplashWnd类里面的Create()函数4.修改图片显示方式2.2计时器1.计时器如不慎侵犯了你的权益,请联系我们告知!如不慎侵犯了你的权益,请联系我们告知!ime就会自动执行一次。3.在程序里实现 ()函数里写代码了。消息1.键盘消息WM_KEYDOWN是任意键(包括字符键)被按下时都产生该消息。如果被按2.MFC中WM_KEYDOWN消息3.添加消息响应函数如不慎侵犯了你的权益,请联系我们告知!1.鼠标消息统都会在捕获这2.MFC中的WM_ONLBUTTONDOWN消息3.添加鼠标响应消息OnLButtonDown建立类向导,选中MessageMaps选项卡,在.5游戏开始暂停点击开始图形按钮,或者按开始/暂停键(默认F1)让游戏开始运行。设置游戏开如不慎侵犯了你的权益,请联系我们告知!1.定义变量2.添加消息响应函数3.在OnKeyDown中加代码如不慎侵犯了你的权益,请联系我们告知!1.定义变量2.写绘制图形按钮代码3.写鼠标响应代码 7坦克控制如不慎侵犯了你的权益,请联系我们告知!1.添加己方坦克位图2.添加变量3.写键盘响应代码n4.添加己方坦克绘制代码处理的双缓冲技术,当然这里用到的双缓冲技术,一会在下面会专门介绍到双缓冲如不慎侵犯了你的权益,请联系我们告知!.2.8坦克发子弹己方坦克发子弹:通过按空格键(默认)。也可以通过键盘设置来设置自己喜1.添加子弹位图目录res文件夹下,然后在程序里点击插入-资源(或者用快捷键Ctrl+R),然后选2.定义变量3.添加键盘响应消息4.在OnTimer函数中添加代码如不慎侵犯了你的权益,请联系我们告知!5.添加子弹绘制代码1.添加障碍物位图2.定义变量3.添加障碍物绘制代码1.添加敌人坦克图片如不慎侵犯了你的权益,请联系我们告知!如不慎侵犯了你的权益,请联系我们告知!2.定义变量3.添加敌人坦克绘制代码1.随机函数rand()样设计的,是为了便于程序的调试。若要产生每次不同的随机数,可以使用2.坦克自己移动如不慎侵犯了你的权益,请联系我们告知!3.改变坦克方向及控制发子弹s1.前方是边缘2.前方是我方坦克YX3.前方是障碍1.定义变量如不慎侵犯了你的权益,请联系我们告知!2.在OnTimer里加判断代码3.添加子弹绘制代码1.定义变量2.在OnTimer函数里加判断代码3.添加子弹绘制代码标和敌人坦克坐标进行对比,如果己方子弹和敌人坦克坐标,那么就让该敌人坦克爆炸,爆炸就是先把该坦克隐藏,并在这个位如不慎侵犯了你的权益,请联系我们告知!如不慎侵犯了你的权益,请联系我们告知!1.定义变量2.在OnTimer里加代码3.在OnDraw函数里加代码1.定义变量2.在OnTimer函数里加判断代码3.在OnDraw函数里加代码如不慎侵犯了你的权益,请联系我们告知!我方坦克的重生:当己方坦克被打中爆炸消失后,一段时间后,让己方坦克重打中时候,过一段时间,让坦克继续显示出来,并且初始他的坐1.添加变量在敌方子弹打中我方子弹的代码中加入一个变量死亡判断变量;定义个计数变2.在OnTimer函数里加代码防止3.绘制坦克复活1.定义变量弹打中我方子弹的代码中加入一个变量死亡判断变量;定义个计数变2.在OnTimer函数里加代码3.绘制敌人坦克让其复活如不慎侵犯了你的权益,请联系我们告知!如不慎侵犯了你的权益,请联系我们告知!显示打分系统以及坦克数显示:打死一个敌方坦克加一定的分数,并显示出来,以1.定义变量int方坦克数量、敌人坦克数量、分数,ing2.在屏幕上输出文字3.进入下一关或者游戏结束如不慎侵犯了你的权益,请联系我们告知!1.准备素材2.引用MFC类库winmmlib编译的时候加载,作用是我们用到了他的波形声3.添加声音播放代码(),还有就是爆炸的时候也要调用这个函数。1.设置窗口大小,并让窗口显示居中如不慎侵犯了你的权益,请联系我们告知!2.修改标题栏的名字及图片如不慎侵犯了你的权益,请联系我们告知!5.1双缓冲技术双缓冲就是除了在屏幕上有图形进行显示以外,在内存中也有图形在绘制。我们可以把要显示的图形先在内存中绘制好,然后再一次性的将内存中的图形按照一里用到双缓冲来处理“闪屏”问题,具体是这样实现的:先把背景现“闪屏”的现象了。这就是双缓冲处理“闪屏”候,获得当前鼠标位置的像素值RGB颜色,如果和预定义的颜色值是一样的话,识。5.3计时器的使用时间极短,并且能在很快的时间里实现细微的变化,并naw使用,可以让游戏的刷新,坦克的变化,子弹的变化等更加完美。如不慎侵犯了你的权益,请联系我们告知!5.4设置透明色glib的矩形区域像素的颜色数据进行位块转换,并将结果置于目标设备环境。该函数的最后一个参数是把这个颜色设置为透明色,就是不显示该颜色。由于有的图片的里的某种颜色你不想让它显示出来,这个时候你就可以用这个函数把这个颜色设置成透明色,让它不显示出来,使你的图形更加美观。如不慎侵犯了你的权益,请联系我们告知!荏苒,岁月如梭,两个多月过去了。在这两个月中,让我成长了不少。首先是编程能力方面得到了一个比较好的加强,其次就是让我了解了我的不足,一直以来我觉得自己学到的东西挺多的,但是通过这次毕业设计下来发现,我所了解的东西真的是沧海一粟,知识真的有太多太多,真的应了那句话,活到老学到老。这当然里面有的如不慎侵犯了你的权益,请联系我们告知!致谢这次毕业设计,我最想感谢的是我的导师,他给了我很多建议,教会我很多东西。赵老师:您辛苦了!非常感谢您!您给了我很大的帮助,让我成长了很多,再您的带领下,我的能力有了一定的提高,也让我的自信心得到了充实。谢谢您无私的为我们付出,无论是任何时候,给您打电话,只要是开机的,您都会很耐心的给还有就是要感谢我的同学朋友,他们给我在游戏设计上提了不少建议,比如画如不慎侵犯了你的权益,请联系我们告知![2][美]McConnell.代码大全(第二版)[M].电子工业出版社,2006.3[4]刘志峰.软件工程技术与实践[M].电子工业出版社.2008.CM大学出版社,2009vcMMc如不慎侵犯了你的权益,请联系我们告知!坦克大战游戏软件的源程序/////////////////////////////////////////////////////////////////////////////w如不慎侵犯了你的权益,请联系我们告知!//}}AFX_MSG_MAP/////////////////////////////////////////////////////////////////{{E[i]=1;E_BX[i]=0;E_BY[i]=0;自己坦克初始位置//自己坦克初始方向时变量//我方坦克是否能走如不慎侵犯了你的权益,请联系我们告知!}{Zx[i]=0;Zy[i]=0;ZD[i]=1;Bulleti;}{}}{}{{如不慎侵犯了你的权益,请联系我们告知!}/////////{//背{}如不慎侵犯了你的权益,请联系我们告知!Bitmapb}{if(E[i]==1){{}{}{}{}}}如不慎侵犯了你的权益,请联系我们告知!{//KillTimer(1);KillTimer;}上{if(Bullet[i]==1)//我方子弹{if(ZD[i]==1)if(ZD[i]==2)if(ZD[i]==3)if(ZD[i]==4)}}{if(E_FIRE[i]==1&&E[i]==1)//敌人子弹{if(E_BD[i]==1)if(E_BD[i]==2)if(E_BD[i]==3)如不慎侵犯了你的权益,请联系我们告知!if(E_BD[i]==4)Y}}fori;i<3;i++){if(Born[i]==0)//打中敌人敌人爆炸{}}{}{}{}{}如不慎侵犯了你的权益,请联系我们告知!//暂停开始按钮绘图{}{}{}{KillTimer;}}/////////////////////////////////////////////////////////////////////////////如不慎侵犯了你的权益,请联系我们告知!{}{}{}////////////////////////{}{{for(i=0;i<7;i++)//前方是否有障碍物{ifTyHinderyiTyHinderyi&Tx<=Hinderx[i]+36&&Tx>=Hinderx[i]-36){}}如不慎侵犯了你的权益,请联系我们告知!{{if(E[i]==1&&Ey[i]>=Ty&&Ey[i]<=Ty+36&&Tx<=Ex[i]+36&&Tx>=Ex[i]-36){}}}{}}{{ifTyHinderyiTyHinderyiTxHinderxi+36&&Tx>=Hinderx[i]-36)//障碍{}}{{如不慎侵犯了你的权益,请联系我们告知!if(E[i]==1&&Ty>=Ey[i]&&Ty<=Ey[i]+36&&Tx<=Ex[i]+36&&Tx>=Ex[i]-36)//敌人坦克{}}}{}}{{ifTxHinderxiTxHinderxiTyHinderyi&&Ty>=Hindery[i]-36)//障碍{}}{{if(E[i]==1&&Ex[i]<=Tx&&Ex[i]+36>=Tx&&Ty<=Ey[i]+36&&Ty>=Ey[i]-36)//敌人坦克{如不慎侵犯了你的权益,请联系我们告知!}}}Trun{}}{{ifTxHinderxiTxHinderxi&Ty<=Hindery[i]+36&&Ty>=Hindery[i]-36){}}{{if(E[i]==1&&Ex[i]>=Tx&&Ex[i]<=Tx+36&&Ty<=Ey[i]+36&&Ty>=Ey[i]-36){}}}如不慎侵犯了你的权益,请联系我们告知!{}}{KillTimer;{}//游戏暂停}//发子弹{}}{ifTime发射子弹{如不慎侵犯了你的权益,请联系我们告知!fori;i<3;i++){if(E[i]==1){tioniE_BX[i]=Ex[i];E_BY[i]=Ey[i];}}}//敌人坦克移动{if(T==1&&EDrection[i]==1&&Ey[i]>=Ty&&Ey[i]<=Ty+36&&Ex[i]<=Tx+36&&Ex[i]>{}if(T==1&&EDrection[i]==3&&Ey[i]<=Ty&&Ey[i]>=Ty-36&&Ex[i]<=Tx+36&&Ex[i]>={}if(T==1&&EDrection[i]==2&&Ex[i]<=Tx&&Ex[i]>=Tx-36&&Ey[i]<=Ty+36&&Ey[i]>={}if(T==1&&EDrection[i]==4&&Ex[i]>=Tx&&Ex[i]<=Tx+36&&Ey[i]<=Ty+36&&Ey[i]>{}if(ETrun[i]){for(j=0;j<7;j++)//判断是否有障碍物如不慎侵犯了你的权益,请联系我们告知!{if(EDrection[i]==3&&Ey[i]<=Hindery[j]&&Ey[i]>=Hindery[j]-36&&Ex[i]<=Hinderx[j]+36&&Ex[i]>=Hinderx[j]-36)如不慎侵犯了你的权益,请联系我们告知!{}ifEDrectioniEyiHinderyjEyiHindery[j]+36&&Ex[i]<=Hinderx[j]{}ifEDrectioniExiHinderxjExiHinderxj-36&&Ey[i]<=Hindery[j]+{}ifEDrectioniExiHinderxjExiHinderx[j]+36&&Ey[i]<=Hindery[j]{}}}if(ETrun[i]){forjjj//判断是否有他们队友坦克{if(E[j]==1&&EDrection[i]==1&&Ey[i]>Ey[j]&&Ey[i]<Ey[j]+36&&Ex[i]<Ex[j]+36&&Ex[i]>Ex[j]-36){}if(E[j]==1&&EDrection[i]==3&&Ey[i]<Ey[j]&&Ey[i]>Ey[j]-36&&Ex[i]<Ex[j]+36&&Ex[i]>Ex[j]-36){如不慎侵犯了你的权益,请联系我们告知!如不慎侵犯了你的权益,请联系我们告知!}if(E[j]==1&&EDrection[i]==2&&Ex[i]<Ex[j]&&Ex[i]>Ex[j]-36&&Ey[i]<Ey[j]+36&&Ey[i]>Ey[j]-36){}if(E[j]==1&&EDrection[i]==4&&Ex[i]>Ex[j]&&Ex[i]<Ex[j]+36&&Ey[i]<Ey[j]+36&&Ey[i]>Ey[j]-36){}}}if(EDrection[i]==1&&Ey[i]>=24&&ETrun[i]){}if(EDrection[i]==2&&Ex[i]<=660&&ETrun[i]){}if(EDrection[i]==3&&Ey[i]<=662&&ETrun[i]){}if(EDrection[i]==4&&Ex[i]>=28&&ETrun[i]){}}{if(Bullet[i]==1){if(ZD[i]==1)Zy[i]-=10;if(ZD[i]==2)Zxi]+=10;if(ZD[i]==3)//我方子弹移动如不慎侵犯了你的权益,请联系我们告知!Zyi10;如不慎侵犯了你的权益,请联系我们告知!if(ZD[i]==4)Zx[i]-=10;}}for(i=0;i<3;i++)//敌人子弹移动{if(E_BD[i]==1)E_BY[i]-=10;if(E_BD[i]==2)Xiif(E_BD[i]==3)Yiif(E_BD[i]==4)E_BX[i]-=10;}for(i=0;i<8;i++)//我方子弹是否越界{if(Bullet[i]==1&&Zy[i]<10||Zy[i]>680||Zx[i]<10||Zx[i]>680)Bullet[i]=0;}for(i=0;i<3;i++)//敌人子弹是否越界{iEBYiEBYiEBXiEBXi}fori;i<8;i++){forintjjj){if(E[j]==1){//打中敌人坦克if(ZD[i]==1&&Zy[i]>=Ey[j]&&Bullet[i]==1&&Zx[i]>=Ex[j]-15&&Zx[i]<=Ex[j]+21&&Zy[i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南省汨罗市高考历史测试卷【突破训练】附答案
- 2026下半年高中语文教资面试议论文易错题题库
- 2026年变压器检修工职业技能等级认定(二级)操作技能章节练习题
- 2026年人教版中考化学模拟检测试卷及答案二
- 2026年宋代点茶师职业技能等级认定(一级)操作技能模拟试题
- 2026中国液体化工物流行业人才需求与培训体系研究
- 2026中国疫苗市场细分领域投资价值分析报告
- 2026虚拟现实内容开发生态系统构建与投资机会报告
- 2026中国医用血液透析膜进口替代趋势与国产化路径报告
- 2026-2030中国香兰素市场运行态势剖析及企业重点发展分析研究报告
- 空调水管道试压冲洗专项方案
- 2026陕西榆林能源集团有限公司招聘(245人)笔试备考试题及答案详解
- GB/T 24914-2026非公路用旅游观光车辆用电池
- DB 61∕T 5121-2025 建筑工程资料管理规程
- 2025~2026学年北京市顺义区高一上学期期末生物学试卷
- 2026届山东省青岛市青大附中中考数学对点突破模拟试卷含解析
- 2026全国高考体育单招考试语文试题试题(含答案)
- 2026新教材人教版二年级下册数学 第3课时 我的时间小书 课件
- 2026年大学生人文知识竞赛题库及答案
- QC课题培训教学课件
- 水池工程施工方案(3篇)
评论
0/150
提交评论