




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录摘要I前言II第1章 绪论11.1 选题背景11.1.1 系统开发背景11.1.2 Android游戏的发展趋势11.1.3 Android开发工具及系统特点11.2 游戏研究的目的21.3 游戏设计思路2第2章 小新挑战100层游戏总体设计32.1 游戏设计的概述32.1.1 游戏的界面及设计要素32.1.2 游戏的规则32.2 游戏剧情介绍42.2.1 片头故事情节42.2.2 片尾故事情节42.3 游戏的功能介绍42.4 游戏的策划及准备5第3章 小新挑战100层游戏详细设计63.1 小新挑战100层游戏的架构63.1.1 游戏总体框架简介63.2 菜单类AgileGirlActivity63.3 游戏相关类73.3.1 游戏主界面绘制类AgileGirlView73.3.2 障碍类 UIModle83.3.3 食物类Footboard93.3.4 排行榜类GlobalRankingActivity10第4章 小新挑战100层游戏项目测试124.1 游戏测试概述与目的124.2 小新挑战100层游戏系统测试124.2.1 游戏在模拟器上运行步骤124.2.2 游戏导入Android手机的步骤134.3 游戏性能分析13第5章 总结与展望155.1 总结155.2 未来的展望15参考文献16致谢17摘要本论文主要对此款游戏的总体设计,需求分析和内部数据的具体处理和计算进行了详细的阐述。并对游戏的具体设计与实现进行了简要的说明。在一定的Android理论的基础上,介绍了部分关键代码与关键函数的应用。对游戏中应用到的相关计算机图形学实现应用动画的过程做了具体介绍。最后展示成果截图并对其进行简单介绍,然后论文进行整体总结与归纳。在游戏整体架构基础上,从细节入手,对软件测试目的“小新挑战100层”游戏系统测试进行阐述,包括游戏系统测试的具体实现方法和游戏性能分析。第五章:总结与展望。对本文做了总结,对自己今后需进一步研究的内容做了展望。同时,为增添游戏的趣味性和娱乐性,还为该游戏添加了片头、片尾动画,片头、片尾、游戏主体三者通过一个短小的故事情节串联在一起制作成一个有趣的小游戏。关键词 游戏 安卓 人机交互 动画 系统I前言随着社会与科技的发展,人们越来越注重移动、便携与方便。而随着这股潮流的发展,手机应用游戏应运而生。Android系统作为一个市场占有超过50%的手机平台,其应用游戏的发展非常迅猛。本论文提出一款基于Android系统的“小新挑战100层”游戏设计,并对其具体开发与实现进行了剖析。在游戏制作过程中,实现了用户与手机之间的良好的人机交互,使用户更好的参与到游戏中去。此款游戏为冒险类游戏,其内容主要包含“游戏开始”,“排行榜”,“选项”,“游戏主画面”,“游戏退出”这5个模块。主要介绍了每个模块的功能,设计方法。模块和模块之间的逻辑结构和数据处理。本论文主要对此款游戏的总体设计,需求分析和内部数据的具体处理和计算进行了详细的阐述。并对游戏的具体设计与实现进行了简要的说明。在一定Android理论的基础上,介绍了部分关键代码与关键函数的应用。对游戏中应用到的相关计算机图形学实现应用动画的过程做了具体介绍。最后展示成果截图并对其进行简单介绍,然后论文进行整体总结与归纳。II第1章 绪论1.1 选题背景1.1.1 系统开发背景Android一词的本意指“机器人”,同时Android也是Google于2007年11月5日宣布的基于linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。2008年9月22日,美国运营商T-Mobile USA在纽约正式发布第一款基于Android的手机T-Mobile G1。该款手机为宏达电制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持 Wi-Fi。在随后的几个月越来越多的厂商也开始宣布将提供Android手机。事实上直到Android的诞生,才真正打破了智能手机发展的僵局,带领智能手机市场迅速崛起,为人们的生活和工作带来了与众不同的全新体验。1.1.2 Android游戏的发展趋势无论是软件还是硬件,种种迹象表明,Android平台的游戏正在进入快速的发展时期。相较传统的J2ME游戏,无论是在表现力上,还是在开发效率、可移植性上,都对手机游戏注入了新的理念,重要的是为用户带来了全方位的游戏体验。在可玩性和流行性上都占有优势地位。由此,个人认为在未来的Android游戏甚至其他平台的手机游戏中,都会朝着以下的趋势发展:1、将向专业化、大规模化方向发展2、将向网络化方向发展3、将向休闲化、时间片化方向发展1.1.3 Android开发工具及系统特点开发工具Eclipse是一个市场占有率很高的Java IDE工具,Android推荐使用Eclipse来开发Android应用,并为其提供了专门的插件:Android Development Tools(ADT)。系统特点Android的底层建立在Linux系统之上,它采用一种软件叠层的方式进行构建。这种软件层结构使得层与层之间互相分离,分工明确。保证了层与层之间的低耦合,当下层的层下或者层内发生改变时,上层应用程序无须做任何改变。 Android系统主要由5部分组成:应用程序层应用程序框架函数库Android运行时Linux内核Android操作系统运行时由2个部分组成:Android核心库和Dalvik虚拟机。其中Android核心库主要为Java语言提供了大部分的功能,而虚拟机则负责运行Android应用程序。1.2 游戏研究的目的现如今,电子游戏已慢慢渗透进人们生活中,并在扮演着越来越重的角色。可以说,随着它的迅猛发展,现今的电子游戏已经不仅仅是一种娱乐,而是形成了一种文化现象。本游戏的制作属于手机游戏中的冒险类(AGV)游戏。冒险类游戏大部分都在关卡设定以及游戏节奏上加大投入,游戏时间比较短,并强化其游戏动作的动感和乐趣。 1.3 游戏设计思路 “小新挑战100层”这款游戏的主要设计是基于随机出现的各种钉板,尖刀,还有各类食物等因素综合作用影响的情况下,玩家使用方向键左右控制小人,要防止被托上去挤死,掉下去摔死、被钉板,尖刀戳死 。游戏中为了增加游戏的复杂性和难度,增加了各种不同作用的5种板子以及可以延长生命值的食物等因素来影响玩家游戏情况。 第2章 小新挑战100层游戏总体设计2.1 游戏设计的概述 2.1.1 游戏的界面及设计要素 本游戏主界面主要分为5个部分:游戏开始,排行榜,选项,更多,游戏结束。游戏开始:点击“开始”按钮,阅读完游戏规则后,可点击“开始游戏”进入游戏界面。排行榜:主界面中点击“排行榜”按钮,进入历史记录界面,此界面记录挑战100层成功的前25名玩家的信息。选项:主界面中点击“选项”按钮,“选项”界面可以分别对游戏的音效,振动,敏捷度等进行调节。游戏结束:主界面中点击退出按钮就会退出游戏。在游戏开始界面,排行榜界面,选项界面上点击返回键会返回主界面,在游戏界面点击返回按钮会进入跳转界面,在跳转界面点击返回按钮会进入到主界面。2.1.2 游戏的规则程序中的梯子,钉子,传送带和陷阱以及食物是随机产生的,主要是控制人物应该时遇到的不同的问题(比如钉子,传送带,陷阱,梯子或者食物落空或者时间间隔)时,不同的处理方式有与之相对应的流程图,具体的流程图如2-1所示。图2-1首先玩家进入游戏,看到开始界面,选择开始“菜单”,进入游戏主界面,在游戏中,可供玩家落脚的地面共有5种,绿色的表示普通地面;灰色的是空传送带,停留一定时间间隔并会使小人掉下去,玩家们注意不要被这个东西骗了;绿黄相间色的是传送带,传送带有两种,一种是始终向左传送,一种是始终向右传送,可以加速或减慢玩家的行动速度;绿灰色的为钉板,如果踏上的话会损失生命值;带弹簧的为跳板,会不停地把小人弹起。除钉板外,所有可供玩家落脚的地方都是每踏上一下小人的生命值就会回复一格。吃到一系列食物可以延缓小人的死亡的速度。画面左下方的长条是小人的血槽,画面右下方的数字表示目前的层数。2.2 游戏剧情介绍2.2.1 片头故事情节 “小新挑战100层”的片头故事情节如下:一个风和日丽的早上,小新带着好朋友小白去参加双叶幼儿园的春游活动,与小伙伴们一起坐校车前往游乐场。伴随着阿呆,正男,小白,小新,小爱一路上的欢声笑语,大家来到了游乐场。游乐场里,小伙伴们玩得不亦乐乎,挑战了海盗船,飓风飞椅,摩天环车,摩天轮等一系列的刺激又有趣的项目。小新在游乐场里闲逛,忽然走到了一个项目面前停了下来,只见一位举着一块牌子,上面写着:你是勇士吗?那就来挑战100层吧!还有可爱玩具相送哦!看着面前好多漂亮的玩具,小新有点心动:好多玩具呀!大叔微笑着问:小朋友,你想要挑战这个游戏吗?小新立刻举起小手:叔叔,小新是勇士哦!我要报名!于是,小新挑战100层的冒险之旅开始啦!跟着小新一起开启奇幻的旅程吧,Ready Go! 2.2.2 片尾故事情节“小新挑战100层”的片尾故事情节如下:一番冒险而又刺激的挑战后,小新成功的攻破了100层。小新兴奋的蹦了起来,开心的喊着:欧耶!我挑战成功啦!一旁的大叔露出了满意而又欣慰的微笑:恭喜你哦!小朋友,你可以挑选喜欢的礼物啦!最终小新挑了美伢妈妈一直没给他买的电动小火车。2.3 游戏的功能介绍本游戏做开发的是基于Android的“小新挑战100层”的手机游戏,主要实现玩家可以通过重力感应左右上下控制小人,防止被钉子夹死,掉下去摔死,到顶层碰到钉板而死。“小新挑战100层”这款游戏需要实现主要功能如下:1、游戏主框架设计2、游戏中各个Activity之间实现数据传输3、排行榜类的设计与实现4、选项类的设计与实现5、背景类的设计与实现6、食物类的设计与实现7、游戏主逻辑的实现8、游戏的开始和退出功能实现2.4 游戏的策划及准备 本游戏属于动作冒险类游戏,从以下4个方面进行策划:1、界面切换:游戏中共有5个界面,主界面是游戏开始的第一个界面,起欢迎作用。同时作为连接其他所有界面的枢纽。排行榜界面负责显示游戏的历史记录,包括玩家姓名,挑战日期以及分数。选项界面负责整个游戏中的音效和振动效果的控制,敏捷度的调节。2、目标受众:本游戏操作简单,易于上手,适合各个年龄阶段的玩家快速掌握。3、目标平台:本游戏的目标平台为Android2.1版本以上。4、完成游戏策划以后,就要对策划时已经确定的游戏中用到的资源进行搜集,在本游戏中,主要搜集的资源是游戏中用到的图片跟声音。将搜集的图片跟音效资源按表中数据进行组织后,放置在项目的assets目录下。第3章 小新挑战100层游戏详细设计3.1 小新挑战100层游戏的架构3.1.1 游戏总体框架简介游戏的总体架构是指从全局把游戏分为哪几个大的模块,每个模块又实现了哪些功能。本游戏可以划分为三个模块,分别为层模块,功能模块和辅助工具类模块, 表示层模块主要指与前台绘制相关的界面类,包括6个普通的跳转界面和游戏界面。表示层模块是最终呈现在玩家面前的所有界面,主要负责将各个界面绘制在屏幕上,并通过相应的触摸监听方法完成界面之间的相互转换。功能模块是指在游戏界面中所遇到障碍的集合,主要完成的功能是各种障碍的创建和绘制。在游戏中具体来说就是各类不同作用的木板跟食物的创建以及应对每种障碍的反应。工具辅助模块主要是由一个个工具类构成,这些工具或是完成某种计算,或者是完成信息的存取或读取,或是完成对声音和图片的处理,总之,工具辅助模块主要是帮助前台实现某些效果。 3.1.2 游戏的类架构游戏的类架构是指在总体架构的基础上,对每个大模块进行细分后的小模块架构,通过游戏的类架构,基本可以确定各个类的归属。1、表示层模块类架构,表示层模块主要包括界面类及和界面显示相关的线程类还有Activity,这些类互相配合,基本完成了前台界面的绘制工作。2、功能模块的类架构,功能模块主要包括创建障碍和食物的工具类,游戏中包括6种不同作用的板子和8种食物。 3、工具辅助模块的类架构,工具辅助模块包含排行榜模块,图片和音效处理模块,全屏自适应模块等。3.2 菜单类AgileGirlActivityActivity是Android程序中比较重要的类,本游戏中AgileGirlActivity继承自Activity,控制着整个界面的跳转,也负责部分游戏资源的初始化,接下来就开始进行AgileGirlActivity开发。getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);这两行代码是在构造器内设置屏幕显示方式为全屏。getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.main);mAgileGirlView =(AgileGirlView) findViewById(R.id.agile_buddy);mSensorManager=(SensorManager)getSystemService(SENSOR_SERVICE);mSensor=mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);mSensorEventListener = new SensorEventListener() public void onSensorChanged(SensorEvent e) mAgileGirlView.handleMoving(e.valuesSensorManager.DATA_X);public void onAccuracyChanged(Sensor s, int accuracy) ;游戏中对小人的操控使用了加速度传感器,模拟重力感应,使小人在木板上上下左右移动,以上代码是开发注册传感器监听器的步骤,首先获得传感器管理器,传感器为加速度传感器,然后获得振动服务对象。mSensorManager.registerListener(mSensorEventListener, mSensor,SensorManager.SENSOR_DELAY_GAME);这两行代码是注册重力感应器监听。3.3 游戏相关类 3.3.1 游戏主界面绘制类AgileGirlView主界面是游戏运行后进入的第二个界面,起到中枢作用,同时在所有的界面中,主界面处于核心位置,界面间的相互跳转主要是通过主界面串联起来的。首先更新本地文件,初始化资源和音效。以下代码是对振动的处理方法。if (mVibratorFlag) if (mVibrator = null) mVibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);mVibrator.vibrate(25);以下代码为主界面音效的播放方法。private void playSoundEffect(int soundId) try AudioManager mgr = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);float streamVolumeCurrent = mgr.getStreamVolume(AudioManager.STREAM_RING);float streamVolumeMax = mgr.getStreamMaxVolume(AudioManager.STREAM_RING);float volume = streamVolumeCurrent / streamVolumeMax;soundPool.play(soundPoolMap.get(soundId), volume, volume, 1, 0,1f); catch (Exception e) Log.d(PlaySounds, e.toString();public void setRunning(boolean run) mRun = run;这两行代码是引用UI模型跟时间记录器。private UIModel mUIModel;private long mTimeLogger;3.3.2 障碍类 UIModle进入游戏界面,玩家在控制小人中会遇到6类不同作用的板子,以下代码是针对各种不同作用的板子的方法。跳板:跳上去会弹起来,第一次落上时候会恢复生命,再落就不恢复了 传送带:向左或右传送,可以利用加速移动,跳到更远的地方。落上也可以恢复一个生命。钉子板:跟顶棚一样,碰到就掉血,不过走动时候不会再失去生命。灰色板子:踩上去一定时间间隔会落空。private void handleRoleAction() Role role = mRole;for (Footboard footboard : mFootboardList) if(role.getMaxY()=footboard.getMinY()&role.getMaxY() footboard.getMinX() & role.getMinX() 0) return;switch (mRan.nextInt(25) case 0:mCurFood.mFoodReward = FOOD_1;break;case 1:mCurFood.mFoodReward = FOOD_2;break;case 2:case 3:case 4:mCurFood.mFoodReward = FOOD_3;break;case 5:case 6:case 7:mCurFood.mFoodReward = FOOD_4;break;case 8:case 9:case 10:mCurFood.mFoodReward = FOOD_5;break;case 11:case 12:case 13:mCurFood.mFoodReward = FOOD_6;break;case 14:case 15:case 16:case 17:mCurFood.mFoodReward = FOOD_7;break;case 18:case 19:case 20:case 21:mCurFood.mFoodReward = FOOD_8;break;default:mCurFood.mFoodReward = FOOD_NONE;return;mCurFood.mMinX = mRan.nextInt(mScreenAttribute.maxX - FOOD_ATTRIBUTE_IMAGE_SIZE);mCurFood.mMinY = mRan.nextInt(mScreenAttribute.maxY - FOOD_ATTRIBUTE_IMAGE_SIZE);mCurFood.mMaxX = mCurFood.mMinX + FOOD_ATTRIBUTE_IMAGE_SIZE;mCurFood.mMaxY = mCurFood.mMinY + FOOD_ATTRIBUTE_IMAGE_SIZE;mCurFood.mTimeCounter = FOOD_ATTRIBUTE_DELAY_TIME;3.3.4 排行榜类GlobalRankingActivity玩家的每一次游戏信息都存入数据库,显示在排行榜上,如果没有达到超过100层,将不能进入排行榜中,代码如下。if (key.equals(ConstantInfo.PREFERENCE_KEY_RANKING_FLAG) if (sharedPreferences.getInt(ConstantInfo.PREFERENCE_KEY_RANKING_SCORE, 0) = (Integer) myRecord.get(score) myRecord.put(index, 100);rankList.add(myRecord); else for (int i = 0; i rankLength; i+) curObj = (Map) rankList.get(i);if (Long) curObj.get(score) (Integer) myRecord.get(score) rankList.add(i, myRecord);break; else rankList.add(myRecord);第4章 小新挑战100层游戏项目测试4.1 游戏测试概述与目的当游戏制作完成后,为了验证本游戏是否还存在缺陷,我们需要在预设环境中进行调试和运行,游戏测试作为软件测试的一部分,它具备了软件测试所有的一切共同特性:1、测试的目的是发现软件中存在的缺陷。2、测试都是需要测试人员按照产品行为来实施。3、每一种测试都需要产品运行于真实或是模拟环境之下。4、每一种测试都要求以系统方法展示产品功能,以证明测试结果是否有效,以及发现其中出错的原因。总而言之,游戏测试的目的就是发现问题并进行改进,从而优化游戏的功能。4.2 小新挑战100层游戏系统测试4.2.1 游戏在模拟器上运行步骤右击该项目点击“Android Application”,进行模拟器上的游戏测试,操作步骤如图4-1所示。 图4-1 图4-2 图4-3 图4-4模拟器上的游戏主界面如图4-2所示,点击“StartGame”按钮进行游戏,游戏中的一些截图4-3如下,游戏结束跳出对话框提交成绩,如图4-4示。4.2.2 游戏导入Android手机的步骤 在进行手机测试时,需要首先把游戏的apk文件下载到Android手机上并安装,安装通过文件浏览器查找到本游戏的apk文件,然后双击即可安装。安装好本游戏的apk文件后,在主菜单里就可以显示本游戏的图标,点击图标,接下来进入菜单界面,如图4-5所示,点击“开始”按钮,阅读游戏说明后点击“开始游戏”按钮,游戏说明界面如图4-6所示,游戏挑战成功后,可返回主界面,点击排行榜按钮,可查看玩家本次游戏的相关信息,界面如图4-7所示。进入“选项”界面中,可以分别对游戏的音效,振动,敏捷度进行调节。“选项”界面如图4-8所示。 图4-5 图4-6 图4-7 图4-84.3 游戏性能分析在模拟器和手机上分别对游戏的性能做测试,主要包括游戏画面显示和运行的稳定性测试。经测试,图片色彩正常,无偏色和缺色,比例适当,但画面不够流畅,有轻微停顿感,把游戏界面的刷新频率从20帧/秒改为15帧/秒,再次在手机上运行后画面流畅。经过多次试玩,无死机,花屏,非正常退出等非正常游戏状态出现。虽然在开发过程中做了很多方面的优化,但游戏还有很多不足之处,在这里列出了几项。1、游戏布局的改进:可设置难度级别,所有的障碍只有6种。2、游戏资源节约在游戏界面的资源部分是可以重复使用的,可以同一种资源只初始化一次,节省更多的系统资源。3、游戏美工改进:通过对游戏中的图案和背景美化和布局,让游戏画面更加精致,让游戏更具吸引力。第5章 总结与展望5.1 总结经过一个多月的时间终于完成了Android系统的“小新挑战100层”游戏的设计与实现。经过多次测试,运行效果良好,基本能满足玩家的需求。在设计与实现此款游戏过程中,设计游戏内容,熟悉Android平台开发令我花费较多时间和精力。在开始编码程序前期,设计整体游戏框架结构,给每个模块明确分工,以面向对象的思想分析和解决问题的过程令我的编程思想有了较大的提升。在编码程序中期,根据所准备的功能需求进行具体编写代码和功能实现。遇到了较多的问题。例如小人遇到各种不同作用的木板与之发生的碰撞跟反应是最难处理的,以及小人碰到各种木板的动作的人物处理函数,还有建立阶梯函数和时间函数,计分函数等等。在编码后期,主要工作为测试,修改简单的bug和调整游戏中数据的不平衡分别在模拟器和手机上进行性能测试,进行更多的优化。在游戏设计过程中,玩家的交互体验,视觉效果都
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消防安全每月培训内容课件
- 个人物品要有序教学课件
- 2025至2030中国互联网金融行业市场深度分析及前景趋势与投资报告
- 离婚财产分配合同范本:详尽规定财产分割流程
- 国际贸易中心物业管理权出让与商务服务合同
- 女性员工生育保障与工作权合同范本
- 水上乐园场地年租及经营管理合同范本
- 私立医院住院医师规范化培训基地聘用协议
- 精确执行民法典的办公场所租赁合同规范
- 部编版芦花鞋教学课件
- 流浆箱工作原理及控制
- 《保险诚信教育》课件
- 统编版2024-2025学年道德与法治三年级上册全册教案
- 第一章 地球的运动 单元复习 课件高二上学期 地理 人教版(2019)选择性必修一
- 四川省选调笔试真题
- (高级)数据安全管理员实操题考试题库(含答案)
- 精神科护理警示教育
- KeyLogic-东方航空人才培养-翔计划翼计划-项目实施方案(P83)-2013
- 幼儿园中班《饲养员请客》课件
- GB/T 6003.2-2024试验筛技术要求和检验第2部分:金属穿孔板试验筛
- 以商代储合同模板
评论
0/150
提交评论