欢迎来到天天文库
浏览记录
ID:11921461
大小:103.50 KB
页数:10页
时间:2018-07-14
《综合报告-基于windows 平台directx视频加速技术的连连看游戏设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
南昌航空大学软件学院东软班摘要基于windows平台DirectX视频加速技术的连连看游戏设计与实现学生姓名:班级:指导老师:摘要:连连看游戏是一款经典小游戏,操作简单,适合所有玩家。连兰看游戏软件在Windows环境下用VisualStudio2005工具,基于DirectX3D设计开发,可以实现初始化界面,用户使用鼠标点击两张相同图案的小方块进行消除,并有多种地图样式和道具选择,丰富了游戏的娱乐性。此连连看游戏程序界面美观,操作简单,具有一定的趣味性,是一款老少皆宜的休闲佳作。DirectX是一种应用程序接口(API),它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件老写不同的驱动程序,也降低用户安装及设这硬件的复杂度本文通过需求分析与方案论证,首先对开发连连看游戏程序进行初步的分析,然后通过总体设计和详细设计阐述系统的开发和实现过程。关键词:连连看DirectX游戏开发指导老师签名:i 南昌航空大学东软班综合报告WindowsplatformDirectXvideoaccelerationtechnologyLianliankangamedesignandImplementationBasedonStudentname:Class:Supervisor:Abstract:ThegameLianliankanisclassic,smallandsimple.ItSuitsforlotsofusers.ThegamesoftwarerunsundertheWindowsenvironment,itisbasedontheDirectX3DframeworkwithVisualStudio2005developmenttool.Userscanusemouseclicksontwosamepicturestoeliminatethem,andthegamehasmanykindsofmapstylesandthestagetochoice,toenrichentertainment.Thegamemakemorefunforbothyoungandoldpeople.DirectXisanapplicationprogramminginterface(API),whichallowsgamesormultimediaprogramstoachievehigherefficiencyintheimplementationinwindowsplatform,DirectXenhanced3dgraphicsandsoundeffects,thisprovidegamesdevelopersastandardhardware-driveninterface,whichdonotneedtowriteadifferentdriverforeachbrandofhardware,thisdecreasethecomplexityofinstallandsetupthehardwareforusers.Thisarticleisdesignedunderthedemandanalysisanddemonstration.FirstofallthisarticleanalysispreliminaryprocedureflowofthegameLianLianKan,thendescribesystemdesignandthedetaileddesignofthisgame.Keyword:Lianliankan;DirectX;Game-DevelopmenSignatureofSupervisor:基于windows平台DirectX视频加速技术的连连看游戏设计与实现学生姓名:江海涛班级:102042指导老师:刘志韬 南昌航空大学东软班综合报告摘要连连看游戏是一款经典小游戏,操作简单,适合所有玩家。连连看游戏软件在Windows环境下用VisualStudio2005工具,基于DirectX3D设计开发,用户使用鼠标点击两张相同图案的小方块进行消除,并有多种地图样式和道具选择,丰富了游戏的娱乐性。此连连看游戏程序界面美观,操作简单,具有一定的趣味性,是一款老少皆宜的休闲佳作。DirectX是一种应用程序接口(API),它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件老写不同的驱动程序,也降低用户安装及设置硬件的复杂度本文通过需求分析与方案论证,首先对开发连连看游戏程序进行初步的分析,然后通过总体设计和详细设计阐述系统的开发和实现过程。关键字:连连看DirectX游戏开发ABSTRACTThegameLianliankanisclassic,smallandsimple.ItSuitsforlotsofusers.ThegamesoftwarerunsundertheWindowsenvironment,itisbasedontheDirectX3DframeworkwithVisualStudio2005developmenttool.Userscanusemouseclicksontwosamepicturestoeliminatethem,andthegamehasmanykindsofmapstylesandthestagetochoice,toenrichentertainment.Thegamemakemorefunforbothyoungandoldpeople.DirectXisanapplicationprogramminginterface(API),whichallowsgamesormultimediaprogramstoachievehigherefficiencyintheimplementationinwindowsplatform,DirectXenhanced3dgraphicsandsoundeffects,thisprovidegamesdevelopersastandardhardware-driveninterface,whichdonotneedtowriteadifferentdriverforeachbrandofhardware,thisdecreasethecomplexityofinstallandsetupthehardwareforusers.Thisarticleisdesignedunderthedemandanalysisanddemonstration.FirstofallthisarticleanalysispreliminaryprocedureflowofthegameLianLianKan,thendescribesystemdesignandthedetaileddesignofthisgame. 南昌航空大学东软班综合报告Keywords:Lianliankan;DirectX;Game-Developmen1.研究的背景与意义连连看是一款风靡很久的单机版游戏,对于玩家并不陌生,游戏规则简单,只要选择一对相同图案的方块连接起来,连接路径若避开其他图片,且不超过两次转弯则消除次对方块,容易上手。改造成网络游戏增强了该游戏的竞技性,把原先单人在规定时间内完成游戏改变成了玩家间相互制约,相互竞争,可以多人组队合作完成游戏,增强了游戏的技巧性、竞技性、合作性。连连看来源于街机游戏,是给一堆图案中的相同图案进行配对的简单游戏,一位叫做朱俊的网友将这种形式搬到了PC上,立刻成为办公一族的新宠,并迅速传遍了世界各地。饱受工作压力的人们没有太多的时间进行复杂的游戏,而对于这种动动鼠标就能过关的游戏情有独钟。开发连连看游戏程序的目的是为了满足人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人们带来最大程度的放松,也可以增进人们之间的交流,沟通,通过游戏还可以认识更多的朋友,也可以到达跨省、跨市,甚至跨国间人们互相娱乐的目的,而且小游戏还不会浪费计算机过多的资源,不像大型游戏占资源和牵扯精力,可谓工作娱乐两不误。通过此次课题的设计,掌握如何制作一个游戏软件,以及制作游戏软件的整个流程,制作游戏软件的步骤,为以后的就业工作打下基础。2.系统的研究现状电脑游戏在我国起步虽晚,发展却并不为慢。作为后来者,国内业界同行们的信心、勇气和紧迫感曾经着实令玩家们欣慰。让我们记住这些国产游戏事业上曾经撒过汗水的年轻人,正是他们的创新精神和勇气,才使得国产游戏在并不宽松的环境下蓬勃发展至今。与单机游戏日渐衰落正相反的是,网络游戏方兴未艾,遍地开花。但是,与此同时,我们也看到了,在繁荣的背后,潜在的危机,一是来自国内游戏制作者在游戏制作理念上的不足和困乏,另外就是资金问题,这两方面与欧美游戏制作差距很大。在美国,集中了许多计算机软件的设计人才,他们工作之余,时常喜爱编一种能与人斗智的“游戏”,一次来锻炼编程的能力。这种“游戏”花样繁多,但其特点都是利用计算机软件事先设计好的“分析”、“判断”能力反过来与人较量。由于不断修改更新,是计算机的“智力”水平与人难分高低。 南昌航空大学东软班综合报告连连看这款游戏来源于中国,现在已风靡全世界。连连看游戏从出现到现在已经更新了好多版本,比较知名的有蔬菜连连看、水晶连连看、阿达连连看和宠物连连看等不同版本,现在已经有FLASH版本,游戏起来更加方便,无需安装,打开网页即可游戏,最近更是出现网络版本,QQ连连看就是这样一款连连看游戏的网络版本,可以通过网络与其他玩家一起进行游戏,而且地图更为繁多,道具更为丰富,及大地增强了游戏的乐趣。今天,当我们回顾电子游戏最初为什么能吸引人,我们不难悟出这样的道理:电子游戏满足了人们对竞争和对抗的渴望,它总是给予竞争者以新的难题。同时,它还能为胜利这提供崭新的画面和音乐享受。1.DirectX简介DirectX是由微软公司建立的游戏编程接口。由c++编程语言实现,遵循COM。在Windows的平台上影响力超越OpenGL并被多数PC游戏开发商采用。最新版本DirectX9.0c(2006年12月13日)。另外,WindowsVista第5283版亦包含有DirectPlay、DirectSound、DirectInput、DirectSetup等部分。Direct3D与DirectDraw已整合成DirectGaphic,而DirectShow亦已自原本的DirectXSDK中移到Windows平台SDK了。RedistPackage是媒体开发底层API,通过它可以开发游戏和其它媒体应用程序。DirectX并不是一个单纯的图形API,它是由微软公司开发的用途广泛的API,它包含有DirectGraphics(Direct3D+DirectDraw)、DirectInput、DirectPlay、DirectSound、DirectShow、DirectSetup、DirectMediaObjects等多个组件,它提供了一整套的多媒体接口方案。只是其在3D图形方面的优秀表现,让它的其它方面显得暗淡无光。DirectX开发支出是为了弥补Windows3.1系统对图形、声音处理能力的不足,而今已发展成为对整个多媒体系统的各个方面都有决定性影响的接口。DirectX是一族低级“应用程序编程接口(API)”,可为Windows程序提供高性能的硬件加速多媒体支持。Windows支持DirectX8.0,它能增强计算机的多媒体功能。使用DirectX可访问显卡与声卡的功能,从使用程序可提供逼真的三维图形与令人如醉如痴的音乐与声音效果。2.连连看游戏总体设计4.1功能模块设计本程序共分为三个模块,即普通模式游戏模块、挑战模式游戏模块和极限模式游戏模块。如图所示: 南昌航空大学东软班综合报告图3-1功能模块图游戏主程序由普通模式游戏、挑战模式游戏、极限模式游戏和退出游戏组成。普通模式:游戏方块有60个静态方块组成,放在一个8行12列的框架的中心,边框都为空,主要是为了消除方块是的两个折点情况所准备的。60个方块一共由15种不同图片的方块组成,以每种4个的方式随机分布。挑战模式:游戏方块有84个静态方块组成,放在一个9行14列的框架的中心,边框都为空,主要是为了消除方块是的两个折点情况所准备的。84个方块一共由21种不同图片的方块组成,以每种4个的方式随机分布,相对普通难度游戏方块更复杂完成游戏难度有所增加。极限模式:游戏方块有80个动态方块组成,放在一个10行12列的框架的中心,边框都为空,主要是为了消除方块是的两个折点情况所准备的。80个方块一共由20种不同图片的方块组成,以每种4个的方式随机分布。该模式下的方块为动态,当光标移动到游戏方块上的时候游戏方块将变成动态形态,所以在这种情况下比较难分清相同方块进一步加大了游戏的难度。4.2DirectX初始化过程(1)获取接口IDirect3D9的指针m_d3d。该接口用于获取系统中物理硬件设备的信息并创建接口IDirect3DDevice9,该接口是一个C++对象,代表了我们用来显示3D图形的物理硬件设备。(2)初始化D3DPRESENT_PARAMETERS结构d3dpp。该结构由许多数据成员组成,我们可以通过这些变量来指定即将创建的结构IDirect3DDevice9的特性。(3)利用已初始化的D3DPRESENT_PARAMETER结构d3dpp创建IDirect3DDevice9对象m_d3dDevice。(4)利用以创建好的IDirect3DDevice9对象m_d3dDevice创建精灵对象m_sprite。 南昌航空大学东软班综合报告4.3算法设计1.游戏地图数据算数据设计2.图案方块连接判断设计3.鼠标交互功能的设计与实现4.3.1游戏地图数据的设计游戏主界面由背景和进入和退出游戏按钮组成,先对背景图片加载纹理然后初始化精灵,设置原图片和目标图片坐标。然后对按钮原图片加载纹理,再对每个按钮初始化精灵及设置原图片和目标图片坐标。游戏界面有背景和游戏方块组成。先对背景图片加载纹理再初始化精灵,设置原图片和目标图片坐标。然后对游戏方块加载纹理,加载完纹理后以原图片中每个小图片的4个放入游戏总方块中,利用随机函数打乱,再进行初始化精灵,把打乱顺序的图片设置原图片和目标图片的坐标。4.3.2图案方块连接判断的设计对于选中的两个方块的销毁,它们必须符合以下三个条件:⑴选中的两个图案相同。⑵选中的两个方块之间在没有障碍物的情况下,可以用若干垂直的直线线段连起来。⑶这些将它们连接起来的直线线段的折点不超过两个。同种物件的连接方式大致可以分成以下3种:⑴直连方式。在直连方式中,必须要求所选定的两个方块在同一水平直线上,并且两个方块之间没有任何其它的图案方块。在3种连接方式中,直连方式是最简单的。⑵有一个折点的垂直线段连接。所选定的两个方块如果通过折点的方式连接,那么对于折点来说,每个折点必定有且至少有一个坐标是和其一个目标点是相同的,即折点必定在两个目标点所在的X方向或Y方向的直线上。此外,对于一个折点连接的情况,折点应该为第一个选中方块的横向现或纵向线与第二个选中方块的纵向线或横向线相交而得出。还需说明的是,是这些所有可能连接的交线经过的每一个图案方块区域,它们都不允许被障碍物所阻挡。⑶有两个折点的垂直线段连接。这种方式的两个折点所连成的直线与两物件的直接连线可以构成平行线,因此可以根据这个规律,将这条水平线在游戏区域允许的条件上下移动,然后通过判断整条带垂直折点的曲线之间有无障碍物方式来确定是否可以联通。 南昌航空大学东软班综合报告经过上面较为详细的分析后,对选定的方块是否可以作抵消操作可以这样去设计,首先,对简单的直连情况进行判断,看其是否符合条件,假如不能,再加深一个级别的复杂度,对一个折点的情况进行判断,如果不符合条件,再对两个折点的情况进行判断。图4-1图案方块连接判断流程图4.3.3鼠标交互功能的设计与实现鼠标选取两个图案方块后,程序将自动判断所选的两个方块是否能进行抵消操作。下面按照预先设计出的鼠标事件处理流程,对整个功能模块的具体协调与实现过程进行简单地描述。⑴首先获取当前鼠标落点所在游戏区域的具体坐标;⑵判断出该坐标是否符合条件。保证该点在预定义区域最大行数和列数内,并且点击的区域状态不是空白方块区域。⑶对于判断此次鼠标事件的选取是否与第一个方块的选取一样,只需通过用于记录第一个被选中的方块的ID是否相同即可。⑷对于本次选中的方块为第一个选中的情况,先对选中的方块添加一个橙色的底色,用以提示用户当前的第一个方块选中所在的位置。⑸对该选定方块作一些判断,以便更高效地处理。判断选中的方块与前一方块是否为同一方块,并且不与上一次选定的方块为同一方块,然后才跳到下一步对两个选定的方块是否可以抵消的流程中去。⑹调用前面已经实现的大功能函数CheckLink来判断所选两个图案是否可以相互抵消。⑺ 南昌航空大学东软班综合报告如果可以抵消,对选中的两个方块在内部核心地图对应的数据状态作适当的修改,将它们的状态记作已经被销毁的空方块状态。⑻完成第二个图案的选取工作与相关的功能操作后,需要对前面已经选取的第一个方块位置的记录做清理工作,以便下一个新方块组的选择。⑼最后,判断此次的鼠标操作是否已经胜利结束,如果是则给予用户提示,然后重新开始新的一关。图4-2鼠标交互功能流程图1.结论本次毕业设计主要是利用DirectX技术和相关连连看算法完成程序设计:1.利用DirectX技术完成场景渲染2.利用DirectX技术完成鼠标设备交互3.游戏方块分布算法 南昌航空大学东软班综合报告4.检测选定方块是否可以消除算法6.致谢两年的学校和两年的东软实训中心的生活即将结束,四年大学生活,老师们教导我帮助我,让我能够学习到各方面的知识。在老师的帮助些也顺利的完成了毕业设计,在此对他们表示衷心的感谢。感谢软件学院和东软实训中心的所有老师对我们的教育和指导,感谢我的指导老师刘志韬老师对我毕业设计的帮助,感谢所有的同学们对我们的帮助。在此还要向评审论文的各位老师致以深深的感谢。7.参考文献[1]谭浩强.《C++程序设计》.北京:清华大学出版社.2010[2]陈宏中.《面向对象的程序设计与C++》.上海:同济大学出版社.1992[3]罗伟坚.VisualC++经典游戏程序设计.北京:人民邮电出版社,2006.2[4]陈清华,朱红.VisualC++课程设计-案例精选与编程指导.南京:东南大学出版社,2004[5](美国)(AllenSherrod)谢里德.《DirectX游戏开发终极指南》.北京:清华大学出版社.2008[6](美)(FrankD.luna).《DirectX9.03D游戏开发编程基础》.北京:清华大学出版社.2007[7]周国庆.《DirectX游戏编程》.北京:清华大学出版社.2010[8](美)(AndreLamothe).《WINDOWS游戏编程大师技巧》.中国电力出版社.2004[9]Conger.《C++游戏开发》.机械工业出版社.2007[10]徐明亮.《OpenGL游戏编程》.机械工业出版社.2008
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处