游戏设计实验报告_第1页
游戏设计实验报告_第2页
游戏设计实验报告_第3页
游戏设计实验报告_第4页
游戏设计实验报告_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

游戏设计实验报告游戏设计游戏设计实验报告全文共25页,当前为第1页。游戏设计实验报告全文共25页,当前为第1页。游戏设计实验报告全文共25页,当前为第2页。

游戏设计实验报告全文共25页,当前为第2页。目录TOC\o"1-3"\h\u9146第一章引言 39252第二章需求分析 4168272.1系统开发目标 4169992.2系统需求分析 4210532.2.1业务需求分析 4211472.2.2用户需求分析 4208822.2.3功能需求分析 425965第三章系统概要设计 512223.1背景故事 5118833.2游戏程序流程设计 618291图3.2游戏程序流程图 6513第四章系统详细设计 6185564.1画面和切换 668624.2定义游戏世界 7230384.3系统功能模块 8173214.4储存素材 9296684.5游戏界面 10129764.6分数榜设定 115844.7游戏总控制 12游戏设计实验报告全文共25页,当前为第3页。164424.8游戏设置 12游戏设计实验报告全文共25页,当前为第3页。20003第五章软件运行与测试 1390505.1系统测试 13256825.1.1游戏页面显示 13264315.1.2移动主角测试 13138005.1.3主角碰到金币测试 1322565.1.4判定结束测试 13173785.1.5暂停测试 13261055.1.6恢复测试 13311665.1.7压力测试 13134385.2结果分析 1313699第六章结论 14游戏设计实验报告全文共25页,当前为第4页。

游戏设计实验报告全文共25页,当前为第4页。第一章引言安卓游戏是运行在安卓系统平台的游戏,随着移动终端设备的发展,安卓游戏不但可以运行于智能手机,也可以运行在平板电脑上。安卓游戏的系统架构和其它操作系统一样,采用了分层的架构。从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。Android开放的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。游戏设计实验报告全文共25页,当前为第5页。SDK:(softwaredevelopmentkit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。AndroidSDK指的是Android专属的软件开发工具包。游戏设计实验报告全文共25页,当前为第5页。libgdx是一个跨平台的2D/3D的游戏开发框架,它由Java/C/C++语言编写而成。ibgdx兼容大多数微机平台(标准JavaSE实现,能运行在Mac、Linux、Windows等系统,最近加入了对html5的支持)与Android平台(Android1.5以上即可使用,Android2.1以上可满功率发挥)。Libgdx以native方式自带图像解码器,通过其提供的Pixmap可以对指定图像进行像素级渲染操作,从而不依赖Android的Bitmap加载处理图像,可以支持png、jpg、bmp,最近的两个版本中加入了对gif图片的支持.Libgdx由audio、files、graphics、math、physics、scenes、utils这些主要类库所组成,它们分别对应了Libgdx中的音频操作,文件读取,2D/3D渲染,Libgdx绘图相关运算,Box2D封装,2D/3D游戏组件(3D部分目前无组件),以及Libgdx内置工具类。游戏设计实验报告全文共25页,当前为第6页。Gdx是Libgdx类库运行的核心所在,不单运行Graphics、Input、Files、Audio、AndroidApplication等Libgdx关键部分,所必需的实例会在Libgdx初始化时注入Gdx中对应的graphics、input、files、audio、app等静态变量里面,就连Libgdx对OpenGL接口(或OpenGLES,视Libgdx运行平台而定,以下统称OpenGL)的GL10、GL11、GL20、GLCommon等封装类也会在Graphics实例化时分别注入到gl10、gl11、gl20、gl这四个同样位于Gdx的静态变量当中。游戏设计实验报告全文共25页,当前为第6页。游戏设计实验报告全文共25页,当前为第7页。

游戏设计实验报告全文共25页,当前为第7页。第二章需求分析这是一款跳跃型的游戏,主人物会一直往上跳,我们只需控制左右移动让其踩在适当的跳台上即可继续的往上跳,最终加到的金币越多,同时要避开飞在空中的蜜蜂,直到到达最顶部的城堡,才进入下一关。2.1系统开发目标采用基于Android的Java编程技术,以及用Libgdx框架的相关技术开发出界面简洁清新,易操作,细节精致,设置齐全的SupperJumper游戏。2.2系统需求分析2.2.1业务需求分析游戏设计实验报告全文共25页,当前为第8页。总所周知,SupperJumper是一款经典不过时的游戏,它无论在电脑,小霸王,手机都有它的身影,即使现在市场上各种游戏百花齐放,各种各样,但是SupperJumper依然能够占有一席之地,其市场还是很大的.这是由于它的特殊在于它能吸引人更深入,简单上手,该游戏的优势在于它的简单易行,不论是小游戏机,还是手机,都能很快顺利的运行.游戏设计实验报告全文共25页,当前为第8页。2.2.2用户需求分析游戏设计出来后,其质量还是要由用户来评判的,在游戏为用户所用时,用户也对游戏有自己的期望和要求。(1)简单易学每个人的时间都是宝贵的,用户不愿意花一大堆时间去学习如何玩意个游戏,因此游戏必须很容易上手,要求界面简洁明了,否则太复杂难懂的话会让很多客户离去。(2)运行稳定一个游戏如果设计出来却不能保证其稳定性,那么就可能使游戏无法正常运行。如果用户正在游戏突然软件崩溃了,无疑会让用户感到烦躁,从而把软件给卸载了,这样也会失去很多用户。(3)操作简便用户之所以选择SupperJumper,就是由于其快捷简便性,所以我们要让用户玩的舒心则必然要设计出一套操作简便的系统。2.2.3功能需求分析本项目是一个运行在安卓手机上的游戏,我们初步设定本游戏具有以下几个功能。•游戏的主角不断向上跳跃,从一个平台跳到另一平台。游戏世界在垂直方向跨了多个画面。游戏设计实验报告全文共25页,当前为第9页。•通过左右倾斜屏幕来控制水平移动。游戏设计实验报告全文共25页,当前为第9页。•当游戏主角离开水平屏幕边界时,它将从屏幕相反的一边重新进入。•平台可以静止或者水平移动。•有些平台在主角撞上时会随机地变得粉碎。•在向上的路上,主角可以收集物品来获得分数。•除了钱币,在一些平台上会有弹簧,它们可以使主角跳得更高。•邪恶的力量充满了游戏世界,它们水平移动。当碰上它们时,主角将死亡并且游戏结束。•当主角掉落到屏幕的底部边缘时,游戏也将结束。•在关卡的顶部会有一些目标,当主角碰上目标,新的关卡将开始。•当游戏结束后,显示玩家在游戏中所获得的分数。第三章系统概要设计3.1背景故事游戏设计实验报告全文共25页,当前为第10页。游戏的主角得了慢性跳跃症。他每次接触到地面都必须进行跳跃。更糟的是,他深爱的公主(不给她取名字了)被会飞行的松鼠杀手组成的邪恶军队绑架,关在天上的一个城堡中。在这种情况下,主角的病症反而对拯救公主有所帮助。他开始寻觅心爱的人,与邪恶的松鼠军队战斗。游戏设计实验报告全文共25页,当前为第10页。图3.1初始的游戏机制实物模型,显示了主角、平台、钱币、邪恶势力和关卡顶部的目标3.2游戏程序流程设计游戏设计实验报告全文共25页,当前为第11页。本游戏程序流程图如图3.2所示。游戏设计实验报告全文共25页,当前为第11页。图3.2游戏程序流程图第四章系统详细设计4.1画面和切换•有一个带标识的主画面;有PLAY、HIGHSCORES和HELP菜单项;并有一个按键来控制声音的开启和关闭。游戏设计实验报告全文共25页,当前为第12页。•有一个游戏画面来询问玩家是否准备好控制运行、暂停、结束游戏和下一关卡的状态。比起Mr.Nom,这里只是新增了画面的下一关卡状态,它将在主角碰到城堡时触发。这时新的关卡生成,并且主角将重新从世界的底部开始并保持他的分数。游戏设计实验报告全文共25页,当前为第12页。•有一个高分画面用来显示玩家最高的5个分数。•有一个帮助画面来说明游戏机制和玩家的目标,此处省略了玩家如何进行控制的描述。图4.1SuperJumper的所有画面和切换游戏设计实验报告全文共25页,当前为第13页。游戏设计实验报告全文共25页,当前为第13页。4.2定义游戏世界在世界空间中按物理规律定义了对象,其边界形状和位置的度量单位是米,速度的度量单位是米/秒。但对象的图像表示使用像素定义,因此不得不做一些映射。解决这个问题的方法是首先针对图像资源定义目标分辨率。与Mr.Nom一样,此处使用的目标分辨率是320×480像素(纵横比是1.5)。之所以使用这个目标分辨率,是因为这是最低的可行的分辨率,但是如果游戏专门针对平板电脑,则可以使用800×1 280像素这样的分辨率,或者这两种分辨率之间的一种分辨率,例如480×800像素(典型的Android手机)。不管目标分辨率如何,其原理是相同的。游戏设计实验报告全文共25页,当前为第14页。接下来在像素和世界空间中的米之间建立对应关系。图3.1中的实物模型显示了不同对象使用的画面空间的大小以及它们间的相对比例。对于2D游戏,此处推荐将32像素映射为1米。那么现在在实物模型上覆盖一个网格,网格的尺寸是320×380像素,每个单元格大小是32×32像素。在世界空间中,单元格映射为1×1米的大小。图4.2显示的是实物模型和网格。游戏设计实验报告全文共25页,当前为第14页。图4.2覆盖网格的实物模型。每个单元格是32×32像素,对应游戏世界的1×1米Bob是0.8×0.8米;它并不完全占用一个单元格。平台是2×0.5米,水平占据两个单元格,垂直占据半个单元格。钱币是0.8×0.5米。它几乎垂直占据一个单元格,水平占据半个单元格。弹簧是0.5×0.5米,在两个方向上各占据半个单元格。实际上弹簧垂直方向比水平方向要稍长一点。它的边界形状是正方形,因此碰撞测试不是十分严格。松鼠是1×0.8米。城堡是0.8×0.8米。游戏设计实验报告全文共25页,当前为第15页。由这些尺寸可以得到用于碰撞检测的对象的边界矩形的尺寸。它们的大小可以根据游戏对这些值的使用方式进行调整。游戏设计实验报告全文共25页,当前为第15页。由于当主角出了屏幕底部边缘时将死亡,这样照相机也将在游戏机制中扮演角色。虽然我们使用照相机进行渲染并且当主角跳起时也向上移动它,但在世界的模拟类中并不使用它,而记录到目前为止主角的最高y坐标。如果他低于这个值与视锥体一半高度的差值,那么就认为它离开了屏幕。由于需要根据视锥的高度来决定主角的生死,因此并不能够使模型(世界模拟类)和视图之间完全独立,对此是可以容忍的。4.3系统功能模块本系统一共有23个类文件,java源文件及其功能如表4-1所示:游戏设计实验报告全文共25页,当前为第16页。表4-1java源文件及其功能图游戏设计实验报告全文共25页,当前为第16页。序号文件名主要功能1SuperJumper启动入口2Settings记录声音开启关闭3Assets各种资源的读取4MainMenuScreen主菜单界面5OverlapTester检测各种碰撞6Animation动画的两种状态,循环和不循环(不循环则动画播放完毕后停留在最后一张图片上)7GameObject所有的游戏物体都会在一个平面内绘制(或者说在屏幕大小内绘制),那么所有的物体都应该包含一个位置8Helpscreen显示游戏的帮助画面9HighscoreScreen显示游戏的分数榜画面10GameScreen显示游戏的不同状态的画面11World实现控制运行等总体要求,如放置金币,主角移动速度,主角是否存活等。12WorldRenderer用来把每个对象关联相应的图片资源,同时控制相机,实现动画。13DynamicGameObjectx,y轴方向相关的运动信息14Bob主角15Castle城堡16Coin金币17Platform平台18Spring弹簧19Squirrel空中飞行的松鼠4.4储存素材在本游戏会用到一些图片和音效素材,如图4.2所示,Assets类的实际作用就是用静态变量把这些个要用到的图片,音效文件保存下来,放到内存中(从Asset文件夹中加载的资料文件).之后就可以在代码中方便的使用到这些资源文件,比如game.getGraphics().drawPixmap(Assets.background,0,0)。游戏设计实验报告全文共25页,当前为第17页。游戏设计实验报告全文共25页,当前为第17页。图4.2图片音效素材……4.5游戏界面游戏设计实验报告全文共25页,当前为第18页。背景图片不仅使用在主菜单画面,也使用在所有的画面上。它与目标分辨率大小一样,都是320×480像素。主菜单项记录是300×110像素。在图5显示的背景是黑色的,这是因为白底白字是看不清的。在实际的图片中,背景使用的是透明像素。logo是274×142像素,在其4个角上使用了透明像素。游戏设计实验报告全文共25页,当前为第18页。再接下来是帮助画面的图片。此处使用了一个320×480像素的全屏图片,而不是使用一组元素组合。这样做将减少绘制代码的数量,因此不会增加程序的大小。图2中显示了所有的帮助画面,唯一组合这些图片的是箭头按钮。对于高分画面,将重用主菜单项中显示“HIGHSCORES”的图片部分。实际的分数将使用本章稍后将介绍的特殊技术进行渲染。画面剩下的部分再次使用背景图片和按钮组成。图4.3游戏主界面4.6分数榜设定游戏设计实验报告全文共25页,当前为第19页。很多游戏都有个高分榜这个设置,SupperJumper也不例外,也有自己的“英雄榜”,上面按递减顺序排列了5个分数,每个玩家结束游戏后都会有得到一个分数,如果超过分数榜上最低一个,那么这个分数就可以进入分数榜,如图4.4所示。游戏设计实验报告全文共25页,当前为第19页。图4.4游戏高分榜publicclassHighscoreScreenextendsScreen{Stringlines[]=newString[5];publicHighscoreScreen(Gamegame){super(game);publicHighscoreScreen(Gamegame){super(game);for(inti=0;i<5;i++){lines[i]=""+(i+1)+"."+Settings.highscores[i];游戏设计实验报告全文共25页,当前为第20页。游戏设计实验报告全文共25页,当前为第20页。4.7游戏总控制重力加速度向量是(0,-13)米/秒2,它比现实中和炮示例中使用的重力加速度要稍大。Bob的初始跳跃速度向量是(0,11)米/秒。注意,跳跃速度只影响在y轴上的移动。水平移动则由加速度的当前读数定义。当碰到弹簧时,Bob的跳跃速度是他正常跳跃速度的1.5倍,即(0,16.5)米/秒。同样,这个值也是纯粹通过实验得到。Bob的水平移动速度是20米/秒。注意,这是一个无方向的速率,不是向量。稍后将讲解它是如何与加速计共同工作的。松鼠不断地左右来回巡逻,它们的移动速度恒定为3米/秒。表示成向量则是,当松鼠向左移动时是(-3,0)米/秒,当它向右移动时是(3,0)米/秒。游戏设计实验报告全文共25页,当前为第21页。由于游戏是运行在纵向模式的,因此将使用加速计在x轴方向的值。当手机没有发生倾斜时,x轴的加速度读数是0米/秒2。当完全向左倾斜至手机处于横向时,x轴的加速计读数是-10米/秒2。当完全向右倾斜时,x轴的加速计读数为10米/秒2。把加速计读数除以最大绝对速度(10)使其规范化,然后乘以Bob最大的水平速率,就得到了Bob的速度。这样当手机完全倾斜到一边时,Bob将以20米/秒从左向右运动,并且速度随手机倾斜变小而变小。当手机完全倾斜时,Bob的速度能达到两倍于平时的速度。游戏设计实验报告全文共25页,当前为第21页。4.8游戏设置这里的游戏游戏设置主要是指游戏运行的音效音乐的播放控制,同时还设置了分数榜数据的储存位置。//定义了音效的开关publicclassSettings{publicstaticbooleansoundEnabled=true;try{//设置了音效高分榜等数据存储的位置in=newBufferedReader(newInputStreamReader(files.readFile(".mrnom")));至此,SupperJumper游戏各个类与功能设计完毕。第五章软件运行与测试5.1系统测试5.1.1游戏页面显示游戏设计实验报告全文共25页,当前为第22页。(1)运行程序,出现游戏界面。游戏设计实验报告全文共25页,当前为第22页。(2)游戏界面显示是否正常,游戏边框,主角以及金币是否全部显示。5.1.2移动主角测试分别按方向键左、右,主角按所指示方向移动。5.1.3主角碰到金币测试(1)主角碰到金币后,金币会消失,无异常。(2)主角碰到金币后,分数增加10分,无异常。5.1.4判定结束测试(1)移动主角,分别左、右两个方向移动,直至到达城堡。此时,游戏会结束。(2)移动主角,到一定高度后,撞击到松鼠。此时,游戏会结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论