游戏设计综合实验报告.docx
- 文档编号:2846097
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:13
- 大小:467.14KB
游戏设计综合实验报告.docx
《游戏设计综合实验报告.docx》由会员分享,可在线阅读,更多相关《游戏设计综合实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
游戏设计综合实验报告
游戏设计
Supperjumper
学校:
嘉应学院
学院:
计算机学院
班级:
指导老师:
小组成员:
2014年05月30日
第一章引言
安卓游戏是运行在安卓系统平台的游戏,随着移动终端设备的发展,安卓游戏不但可以运行于智能手机,也可以运行在平板电脑上。
安卓游戏的系统架构和其它操作系统一样,采用了分层的架构。
从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
Android开放的平台允许任何移动终端厂商加入到Android联盟中来。
显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。
开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。
开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。
SDK:
(softwaredevelopmentkit)软件开发工具包。
被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
AndroidSDK指的是Android专属的软件开发工具包。
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内置工具类。
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的静态变量当中。
第二章需求分析
这是一款跳跃型的游戏,主人物会一直往上跳,我们只需控制左右移动让其踩在适当的跳台上即可继续的往上跳,最终加到的金币越多,同时要避开飞在空中的蜜蜂,直到到达最顶部的城堡,才进入下一关。
2.1系统开发目标
采用基于Android的Java编程技术,以及用Libgdx框架的相关技术开发出界面简洁清新,易操作,细节精致,设置齐全的SupperJumper游戏。
2.2系统需求分析
2.2.1业务需求分析
总所周知,SupperJumper是一款经典不过时的游戏,它无论在电脑,小霸王,手机都有它的身影,即使现在市场上各种游戏百花齐放,各种各样,但是SupperJumper依然能够占有一席之地,其市场还是很大的.这是由于它的特殊在于它能吸引人更深入,简单上手,该游戏的优势在于它的简单易行,不论是小游戏机,还是手机,都能很快顺利的运行.
2.2.2用户需求分析
游戏设计出来后,其质量还是要由用户来评判的,在游戏为用户所用时,用户也对游戏有自己的期望和要求。
(1)简单易学
每个人的时间都是宝贵的,用户不愿意花一大堆时间去学习如何玩意个游戏,因此游戏必须很容易上手,要求界面简洁明了,否则太复杂难懂的话会让很多客户离去。
(2)运行稳定
一个游戏如果设计出来却不能保证其稳定性,那么就可能使游戏无法正常运行。
如果用户正在游戏突然软件崩溃了,无疑会让用户感到烦躁,从而把软件给卸载了,这样也会失去很多用户。
(3)操作简便
用户之所以选择SupperJumper,就是由于其快捷简便性,所以我们要让用户玩的舒心则必然要设计出一套操作简便的系统。
2.2.3功能需求分析
本项目是一个运行在安卓手机上的游戏,我们初步设定本游戏具有以下几个功能。
•游戏的主角不断向上跳跃,从一个平台跳到另一平台。
游戏世界在垂直方向跨了多个画面。
•通过左右倾斜屏幕来控制水平移动。
•当游戏主角离开水平屏幕边界时,它将从屏幕相反的一边重新进入。
•平台可以静止或者水平移动。
•有些平台在主角撞上时会随机地变得粉碎。
•在向上的路上,主角可以收集物品来获得分数。
•除了钱币,在一些平台上会有弹簧,它们可以使主角跳得更高。
•邪恶的力量充满了游戏世界,它们水平移动。
当碰上它们时,主角将死亡并且游戏结束。
•当主角掉落到屏幕的底部边缘时,游戏也将结束。
•在关卡的顶部会有一些目标,当主角碰上目标,新的关卡将开始。
•当游戏结束后,显示玩家在游戏中所获得的分数。
第三章系统概要设计
3.1背景故事
游戏的主角得了慢性跳跃症。
他每次接触到地面都必须进行跳跃。
更糟的是,他深爱的公主(不给她取名字了)被会飞行的松鼠杀手组成的邪恶军队绑架,关在天上的一个城堡中。
在这种情况下,主角的病症反而对拯救公主有所帮助。
他开始寻觅心爱的人,与邪恶的松鼠军队战斗。
图3.1初始的游戏机制实物模型,显示了主角、平台、钱币、邪恶势力和关卡顶部的目标
3.2游戏程序流程设计
本游戏程序流程图如图3.2所示。
图3.2游戏程序流程图
第四章系统详细设计
4.1画面和切换
•有一个带标识的主画面;有PLAY、HIGHSCORES和HELP菜单项;并有一个按键来控制声音的开启和关闭。
•有一个游戏画面来询问玩家是否准备好控制运行、暂停、结束游戏和下一关卡的状态。
比起Mr.Nom,这里只是新增了画面的下一关卡状态,它将在主角碰到城堡时触发。
这时新的关卡生成,并且主角将重新从世界的底部开始并保持他的分数。
•有一个高分画面用来显示玩家最高的5个分数。
•有一个帮助画面来说明游戏机制和玩家的目标,此处省略了玩家如何进行控制的描述。
图4.1SuperJumper的所有画面和切换
4.2定义游戏世界
在世界空间中按物理规律定义了对象,其边界形状和位置的度量单位是米,速度的度量单位是米/秒。
但对象的图像表示使用像素定义,因此不得不做一些映射。
解决这个问题的方法是首先针对图像资源定义目标分辨率。
与Mr.Nom一样,此处使用的目标分辨率是320×480像素(纵横比是1.5)。
之所以使用这个目标分辨率,是因为这是最低的可行的分辨率,但是如果游戏专门针对平板电脑,则可以使用800×1 280像素这样的分辨率,或者这两种分辨率之间的一种分辨率,例如480×800像素(典型的Android手机)。
不管目标分辨率如何,其原理是相同的。
接下来在像素和世界空间中的米之间建立对应关系。
图3.1中的实物模型显示了不同对象使用的画面空间的大小以及它们间的相对比例。
对于2D游戏,此处推荐将32像素映射为1米。
那么现在在实物模型上覆盖一个网格,网格的尺寸是320×380像素,每个单元格大小是32×32像素。
在世界空间中,单元格映射为1×1米的大小。
图4.2显示的是实物模型和网格。
图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米。
由这些尺寸可以得到用于碰撞检测的对象的边界矩形的尺寸。
它们的大小可以根据游戏对这些值的使用方式进行调整。
由于当主角出了屏幕底部边缘时将死亡,这样照相机也将在游戏机制中扮演角色。
虽然我们使用照相机进行渲染并且当主角跳起时也向上移动它,但在世界的模拟类中并不使用它,而记录到目前为止主角的最高y坐标。
如果他低于这个值与视锥体一半高度的差值,那么就认为它离开了屏幕。
由于需要根据视锥的高度来决定主角的生死,因此并不能够使模型(世界模拟类)和视图之间完全独立,对此是可以容忍的。
4.3系统功能模块
本系统一共有23个类文件,java源文件及其功能如表4-1所示:
表4-1java源文件及其功能图
序号
文件名
主要功能
1
SuperJumper
启动入口
2
Settings
记录声音开启关闭
3
Assets
各种资源的读取
4
MainMenuScreen
主菜单界面
5
OverlapTester
检测各种碰撞
6
Animation
动画的两种状态,循环和不循环(不循环则动画播放完毕后停留在最后一张图片上)
7
GameObject
所有的游戏物体都会在一个平面内绘制(或者说在屏幕大小内绘制),那么所有的物体都应该包含一个位置
8
Helpscreen
显示游戏的帮助画面
9
HighscoreScreen
显示游戏的分数榜画面
10
GameScreen
显示游戏的不同状态的画面
11
World
实现控制运行等总体要求,如放置金币,主角移动速度,主角是否存活等。
12
WorldRenderer
用来把每个对象关联相应的图片资源,同时控制相机,实现动画。
13
DynamicGameObject
x,y轴方向相关的运动信息
14
Bob
主角
15
Castle
城堡
16
Coin
金币
17
Platform
平台
18
Spring
弹簧
19
Squirrel
空中飞行的松鼠
4.4储存素材
在本游戏会用到一些图片和音效素材,如图4.2所示,Assets类的实际作用就是用静态变量把这些个要用到的图片,音效文件保存下来,放到内存中(从Asset文件夹中加载的资料文件).之后就可以在代码中方便的使用到这些资源文件,比如game.getGraphics().drawPixmap(Assets.background,0,0)。
图4.2图片音效素材
……
4.5游戏界面
背景图片不仅使用在主菜单画面,也使用在所有的画面上。
它与目标分辨率大小一样,都是320×480像素。
主菜单项记录是300×110像素。
在图5显示的背景是黑色的,这是因为白底白字是看不清的。
在实际的图片中,背景使用的是透明像素。
logo是274×142像素,在其4个角上使用了透明像素。
再接下来是帮助
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 游戏 设计 综合 实验 报告