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

下载本文档

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

文档简介

1、叮叮小文库游戏设计Supper jumper学 校:嘉应学院学 院:计算机学院班 级:指导老师:小组成员:2014年05月30日目录第一章引言3第二章需求分析42.1 系统开发目标42.2 系统需求分析42.2.1 业务需求分析42.2.2 用户需求分析42.2.3 功能需求分析4第三章系统概要设计53.1 背景故事53.2 游戏程序流程设计 6图3.2游戏程序流程图6第四章系统详细设计64.1 画面和切换64.2 定义游戏世界74.3 系统功能模块84.4 储存素材94.5 游戏界面104.6 分数榜设定114.7 游戏总控制124.8 游戏设置12第五章软件运行与测试135.1 系统测试1

2、35.1.1 游戏页面显示 135.1.2 移动主角测试135.1.3 主角碰到金币测试 135.1.4 判定结束测试135.1.5 暂停测试135.1.6 恢复测试135.1.7 压力测试135.2 结果分析13第六章结论149第一章引言安卓游戏是运行在安卓系统平台的游戏, 随着移动终端设备的发展,安卓游 戏不但可以运行于智能手机,也可以运行在平板电脑上。安卓游戏的系统架构和 其它操作系统一样,采用了分层的架构。从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。Android是以Linux为核心的手机操作平台,作为一款开放式的

3、操作系统, 随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而 受到众多开发者的欢迎,成为真正意义上的开放式操作系统。Android开放的平台允许任何移动终端厂商加入到 Android联盟中来。显著的开放性可以使其拥有 更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。 开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂 商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购

4、得心仪的手机。SDK (software development kit)软件开发工具包。被软件开发工程师用于 为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的 集合。Android SDK指的是Android专属的软件开发工具包。libgdx是一个跨平台的2D/3D的游戏开发框架,它由Java/C/C+错言编写而 成。ibgdx兼容大多数微机平台(标准JavaS改现,能运行在Mac、Linux、Windows 等系统,最近加入了对 html5的支持)与Android平台(Android1.5以上即可使 用,Android2.1以上可满功率发挥)。Libgdx以nativ

5、e方式自带图像解码器,通 过其提供的Pixmap可以对指定图像进行像素级渲染操作,从而不依赖Android的Bitmap加载处理图像,可以支持 png、jpg、bmp,最近的两个版本中加入了 对gif 图片的支持.Libgdx由 audio、 files、 graphics math、 physics scenes utils 这些主要类库所组成,它们分别对应了Libgdx中的音频操作,文件读取,2D/3D渲染,Libgdx绘图相关运算,Box2D封装,2D/3D游戏组件(3D部分目前无组件), 以及Libgdx内置工具类。Gdx是Libgdx类库运行的核心所在,不单运行Graphics In

6、put、Files、Audio、 AndroidApplication等Libgdx关键部分,所必需的实例会在 Libgdx初始化时注入 Gdx 中对应的 graphics、input、files、audio、app 等静态变量里面,就连 Libgdx 对OpenGL接口(或OpenGLES视Libgdx运行平台而定,以下统称 OpenGD的 GL1。GL11、GL2O GLCommon等封装类也会在 Graphics实例化时分别注入到 gl10、gl1。gl20、gl这四个同样位于 Gdx的静态变量当中。第二章需求分析这是一款跳跃型的游戏,主人物会一直往上跳,我们只需控制左右移动让其 踩在适

7、当的跳台上即可继续的往上跳,最终加到的金币越多,同时要避开飞在空 中的蜜蜂,直到到达最顶部的城堡,才进入下一关。2.1 系统开发目标采用基于Android的Jav嘛程技术,以及用Libgdx框架的相关技术开发出界 面简洁清新,易操作,细节精致,设置齐全的SupperJumper游戏。2.2 系统需求分析2.2.1 业务需求分析总所周知,SupperJumper是一款经典不过时的游戏,它无论在电脑,小霸 王,手机都有它的身影,即使现在市场上各种游戏百花齐放,各种各样,但是 SupperJumper依然能够占有一席之地,其市场还是很大的.这是由于它的特殊在 于它能吸引人更深入,简单上手,该游戏的优

8、势在于它的简单易行,不论是小游戏 机,还是手机,都能很快顺利的运行.2.2.2 用户需求分析游戏设计出来后,其质量还是要由用户来评判的,在游戏为用户所用时,用 户也对游戏有自己的期望和要求。(1)简单易学每个人的时间都是宝贵的,用户不愿意花一大堆时间去学习如何玩意个游 戏,因此游戏必须很容易上手,要求界面简洁明了,否则太复杂难懂的话会让很 多客户离去。(2)运行稳定一个游戏如果设计出来却不能保证其稳定性,那么就可能使游戏无法正常运 行。如果用户正在游戏突然软件崩溃了, 无疑会让用户感到烦躁,从而把软件给 卸载了,这样也会失去很多用户。(3)操作简便用户之所以选择 SupperJumper,就是

9、由于其快捷简便性,所以我们要让用 户玩的舒心则必然要设计出一套操作简便的系统。2.2.3 功能需求分析本项目是一个运行在安卓手机上的游戏,我们初步设定本游戏具有以下几个 功能。?游戏的主角不断向上跳跃,从一个平台跳到另一平台。游戏世界在垂直方向跨了多个画面。?通过左右倾斜屏幕来控制水平移动。?当游戏主角离开水平屏幕边界时,它将从屏幕相反的一边重新进入。?平台可以静止或者水平移动。?有些平台在主角撞上时会随机地变得粉碎。?在向上的路上,主角可以收集物品来获得分数。?除了钱币,在一些平台上会有弹簧,它们可以使主角跳得更高。?邪恶的力量充满了游戏世界,它们水平移动。当碰上它们时,主角将死亡 并且游戏

10、结束。?当主角掉落到屏幕的底部边缘时,游戏也将结束。?在关卡的顶部会有一些目标,当主角碰上目标,新的关卡将开始。?当游戏结束后,显示玩家在游戏中所获得的分数。第三章系统概要设计3.1 背景故事游戏的主角得了慢性跳跃症。他每次接触到地面都必须进行跳跃。更糟的是, 他深爱的公主(不给她取名字了)被会飞行的松鼠杀手组成的邪恶军队绑架,关在 天上的一个城堡中。在这种情况下,主角的病症反而对拯救公主有所帮助。 他开 始寻觅心爱的人,与邪恶的松鼠军队战斗。图3.1初始的游戏机制实物模型,显示了主角、平台、钱币、邪恶势力和关卡顶部的目标3.2 游戏程序流程设计本游戏程序流程图如图3.2所示。图3.2游戏程序

11、流程图第四章系统详细设计4.1 画面和切换?有一个带标识的主画面;有 PLAY HIGHSCORES HELP菜单项;并有一个 按键来控制声音的开启和关闭。?有一个游戏画面来询问玩家是否准备好控制运行、暂停、结束游戏和下一 关卡的状态。比起Mr. Nom,这里只是新增了画面的下一关卡状态,它将在主角 碰到城堡时触发。这时新的关卡生成,并且主角将重新从世界的底部开始并保持 他的分数。?有一个高分画面用来显示玩家最高的 5个分数。?有一个帮助画面来说明游戏机制和玩家的目标,此处省略了玩家如何进行 控制的描述。WODiET wian EF图4.1 Super Jumper的所有画面和切换4.2 定义

12、游戏世界在世界空间中按物理规律定义了对象,其边界形状和位置的度量单位是米, 速度的度量单位是米/秒。但对象的图像表示使用像素定义,因此不得不做一些 映射。解决这个问题的方法是首先针对图像资源定义目标分辨率。与Mr. Nom样,此处使用的目标分辨率是 320X480像素(纵横比是1.5)。之所以使用这个目 标分辨率,是因为这是最低的可行的分辨率,但是如果游戏专门针对平板电脑, 则可以使用800X 1280像素这样的分辨率,或者这两种分辨率之间的一种分辨 率,例如480X800像素(典型的Android手机)。不管目标分辨率如何,其原理是 相同的。接下来在像素和世界空间中的米之间建立对应关系。图3

13、.1中的实物模型显示了不同对象使用的画面空间的大小以及它们间的相对比例。对于 2D游戏,此 处推荐将32像素映射为1米。那么现在在实物模型上覆盖一个网格,网格的尺 寸是320X380像素,每个单元格大小是32X32像素。在世界空间中,单元格映 射为1X1米的大小。图4.2显示的是实物模型和网格。图4.2 覆盖网格的实物模型。每个单元格是32X32像素,对应游戏世界的 1X1米? Bob是0.8 X 0.8米;它并不完全占用一个单元格。?平台是2X0.5米,水平占据两个单元格,垂直占据半个单元格。?钱币是0.8 X 0.5米。它几乎垂直占据一个单元格,水平占据半个单元格。?弹簧是0.5 X 0.

14、5米,在两个方向上各占据半个单元格。实际上弹簧垂直方 向比水平方向要稍长一点。它的边界形状是正方形,因此碰撞测试不是十分 严格。? 松鼠是1X0.8米。? 城堡是0.8 X 0.8米。由这些尺寸可以得到用于碰撞检测的对象的边界矩形的尺寸。它们的大小可以根据游戏对这些值的使用方式进行调整。由于当主角出了屏幕底部边缘时将死亡, 这样照相机也将在游戏机制中扮演 角色。虽然我们使用照相机进行渲染并且当主角跳起时也向上移动它,但在世界的模拟类中并不使用它,而记录到目前为止主角的最高 y坐标。如果他低于这个 值与视锥体一半高度的差值,那么就认为它离开了屏幕。由于需要根据视锥的高 度来决定主角的生死,因此并

15、不能够使模型(世界模拟类)和视图之间完全独立, 对此是可以容忍的。4.3 系统功能模块本系统一共有23个类文件,java源文件及其功能如表4-1所示:表4-1 java源文件及其功能图在舁 厅P文件名主要功能1SuperJumper启动入口2Settings记录声音开启关闭3Assets各种资源的读取4MainMenuScreen主菜单界面5OverlapTester检测各种碰撞6Animation动回的两种状态,循环和不循环(不循环则动回 播放完毕后停留在最后一张图片上)7GameObject所有的游戏物体都会在一个平面内绘制(或者说 在屏幕大小内绘制),那么所有的物体都应该包 含一个位置8

16、Helpscreen显示游戏的帮助回向9HighscoreScreen显示游戏的分数榜回向10GameScreen显示游戏的不同状态的回向11World实现控制运行等总体要求,如放置金币,主角移 动速度,主角是否存活等。12WorldRenderer用来把每个对象关联相应的图片资源,同时控制 相机,实现动画。13DynamicGameObjectx, y 轴力向相关的运动信息14Bob主角15Castle城堡16Coin金币17Platform平台18Spring19Squirrel空中飞行的松鼠4.4 储存素材在本游戏会用到一些图片和音效素材,如图 4.2所示,Assets类的实际作用 就是

17、用静态变量把这些个要用到的图片,音效文件保存下来,放到内存中(从Asset 文件夹中加载的资料文件).之后就可以在代码中方便的使用到这些资源文件,比如 game.getGraphics().drawPixmap(Assets.background, 0,)0。叮叮小文库b3ckgrcmnd.pn9h&lp.pngIh9lpLpngclickoggicoin.oggfont1fntfom.pngitemsBpngjump.cgigilibgdxpng图4.2图片音效素材rniusiz.mp3pnb-1 i a a工aws: Asset-s (puJbl i a statiaTexture

18、 backjraund;ablia static T e st t. r ft Re gr a a ba ci grsn;/背景pobliGpubliastatic Texture items;f/ 系列的图片static TextureReglon mdinMsnu;fy主菜单poblia static T&scturR&arori lagta;pubLi a stati a T e kil re Re £on“声音按钮publicstatlaTeK'CureRegion图4.4游戏高分榜134.5 游戏界面背景图片不仅使用在主菜单画面,也使用在所有的画面上

19、。它与目标分辨率大小一样,都是320X480像素。主菜单项记录是 300X 110像素。在图5显示的背景是黑色的,这是因为白 底白字是看不清的。在实际的图片中,背景使用的是透明像素。10go是274X 142像素,在其4个角上使用了透明像素。再接下来是帮助画面的图片。此处使用了一个320X480像素的全屏图片,而不是使用一组元素组合。这样做将减少绘制代码的数量,因此不会增加程序的大小。图2中显示了所有的帮助画面,唯一组合这些图片的是箭头按钮。对于高分画面,将重用主菜单项中显示“HIGHSCORES的图片部分。实际的分数将使用本章稍后将介绍的特殊技术进行渲染。画面剩下的部分再次使用背景图片和按钮

20、组成。图4.3游戏主界面游港界面界面p/Li自曰 = new TexcuireRegion64, 64, 64, 4);psuseMsru = new TextureRegiOTi (itefE5, 224r 22er 192 9石):rsady = new(工£,“ 320. 22f32);gam-Ovr - new TexrureReqion (itM:5r 352, 256, 160 96);highSceresRe1on = new TextureRegion(Asseta.。, 257, 300, U4.6 分数榜设定很多游戏都有个高分榜这个设置,SupperJumper也

21、不例外,也有自己的"英雄榜",上面按递减顺序排列了 5个分数,每个玩家结束游戏后都会有得到一个分数,如果超过分数榜上最低一个,那么这个分数就可以进入分数榜,如图4.4所示。而Wohii * 0HTGHSCORE3 AOON. aO 3. 5 0 4. 3 0 5. 1Opublic class HighscoreScreen extends Screen String lines口 = new String5;public HighscoreScreen(Game game) super(game);public HighscoreScreen(Game game) sup

22、er(game);for (int i = 0; i < 5; i+) linesi = "" + (i + 1) + ". " + Settings.highscoresi;4.7 游戏总控制? 重力加速度向量是(0,-13)米/秒2,它比现实中和炮示例中使用的重力加速度要稍 大。? Bob的初始跳跃速度向量是(0,11)米/秒。注意,跳跃速度只影响在y轴上的移动。水平移动则由加速度的当前读数定义。? 当碰到弹簧时,Bob的跳跃速度是他正常跳跃速度的1.5倍,即(0,16.5)米/秒。同样,这个值也是纯粹通过实验得到。? Bob的水平移动速度是2

23、0米/秒。注意,这是一个无方向的速率,不是向量。稍后将 讲解它是如何与加速计共同工作的。? 松鼠不断地左右来回巡逻,它们的移动速度恒定为3米/秒。表示成向量则是,当松鼠向左移动时是(-3,0)米/秒,当它向右移动时是(3,0)米/秒。由于游戏是运行在纵向模式的,因此将使用加速计在X轴方向的值。当手机没有 发生倾斜时,X轴的加速度读数是0米/秒2。当完全向左倾斜至手机处于横向时, X轴的加速计读数是-10米/秒2。当完全向右倾斜时,X轴的加速计读数为10 米/秒2。把加速计读数除以最大绝对速度(10)使其规范化,然后乘以 Bob最大 的水平速率,就得到了 Bob的速度。这样当手机完全倾斜到一边时

24、,Bob将以20 米/秒从左向右运动,并且速度随手机倾斜变小而变小。当手机完全倾斜时,Bob的速度能达到两倍于平时的速度。4.8 游戏设置这里的游戏游戏设置主要是指游戏运行的音效音乐的播放控制,同时还设置了分数榜数据的储存位置。/定义了音效的开关public class Settings public static boolean soundEnabled = true;叮叮小文库try /设置了音效高分榜等数据存储的位置in = new BufferedReader(new InputStreamReader(files.readFile(".mrnom");至此,Sup

25、perJumper游戏各个类与功能设计完毕。第五章软件运行与测试5.1 系统测试5.1.1 游戏页面显示(1)运行程序,出现游戏界面。(2)游戏界面显示是否正常,游戏边框,主角以及金币是否全部显示。5.1.2 移动主角测试分别按方向键左、右,主角按所指示方向移动。5.1.3 主角碰到金币测试(1)主角碰到金币后,金币会消失,无异常。(2)主角碰到金币后,分数增加10分,无异常。5.1.4 判定结束测试(1)移动主角,分别左、右两个方向移动,直至到达城堡。此时,游戏会结 束。(2)移动主角,到一定高度后,撞击到松鼠。此时,游戏会结束。5.1.5 暂停测试游戏中途按暂停键,会暂停游戏。5.1.6 恢

温馨提示

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

评论

0/150

提交评论