毕业论文-基于android打地鼠游戏的设计与实现.doc_第1页
毕业论文-基于android打地鼠游戏的设计与实现.doc_第2页
毕业论文-基于android打地鼠游戏的设计与实现.doc_第3页
毕业论文-基于android打地鼠游戏的设计与实现.doc_第4页
毕业论文-基于android打地鼠游戏的设计与实现.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

中北大学信息商务学院2016届毕业设计说明书中北大学信息商务学院毕业设计说明书 基于Android打地鼠的设计与实现学生姓名: 系 名: 电子与计算机科学技术系 专 业: 网络工程 指导教师: 2016年5月21日摘 要本文提出一款以安卓系统作为基础的“打地鼠”游戏设计,并仔细对它的具体开发方式和实现进行了深入分析。通过游戏的设计和制作过程,有助于使用户和手机形成良好的人机交互,让用户在游戏中得到更好的体验。本文主要介绍了这款游戏的三个方面,即游戏的总体设计、用户的需求探析以及内部数据具体详细的处理和计算方法。不仅如此,在理论的基础上,还对游戏的可操作性和在实际中能否实现做出了相关的描述。利用有关的安卓理论,对设计过程中用到的关键代码和关键函数的应用做了简单介绍。同时,在设计游戏时需要使用与其相关的计算机图形学,利用其可以实现动画的过程,所以,对计算机图形学也做了介绍。 关键词:游戏;安卓;人机交互AbstractA in the Android system as foundation whack-a-mole game design and carefully to its specific development and implementation are deeply analyzed in this paper. Through the game design and production process, help users and mobile phones to form a good human-computer interaction, allowing users to get a better experience in the game. This paper mainly introduces the three aspects of this game, that is, the overall design of the game, the needs of users and the internal data of the specific details of the processing and calculation methods. Not only that, on the basis of the theory, but also on the games operational characteristics and can be achieved in practice to make a relevant description. Using the relevant Android theory, the design process used in the key code and the application of key functions to do a simple introduction. At the same time, in the design of the game needs to use its related computer graphics, the use of the process can be achieved, so the computer graphics are also introduced.Key words: the game; Android; The human-computer interaction目 录摘要.Abstract.1.绪论.11.1背景.11.2现状.11.3游戏的目的与意义.21.4 Android游戏的发展趋势.21.5系统调研.31.5.1技术可行性分析.31.5.2经济可行性分析.32.技术原理基础理论.32.1开发工具.32.2系统特点.32.3安卓的handler方法.53.项目总体概要.53.1游戏需求分析.53.1.1对功能的规定.53.2游戏方法介绍.64.项目具体实现.74.1软件框架流程图.74.2项目软件核心程序.75.系统测试.115.1软件的运行.116.总结与展望.136.1项目展望.136.2 项目总结.13参考文献.15致谢.16IV1 绪论11 背景如今智能手机已经十分普及,而其在过去几年的关注度和使用率呈几何时上涨。传统的手机逐渐被淘汰。在这样的环境中Android版和ios版的移动平台逐渐占据了大部分市场。并且属Android设备在智能机市场里所占的比率最高。Android系统的类型非常的繁杂、分散、多样化,使Android破碎化过于严重。但是ios系统不同与此,由于苹果公司拥有者优秀的管理体系,以及完善的管理之道,所以其系统并没有出现破碎化过于严重现象。但由于该系统是太完美了,导致他们在系统的产品范围单一,并满足不了当前广大用户的需求。而本文重点谈论Android。随着Android平台市场的扩散和越来越多的关注度。使得在这平台开发常用软件已成为必需的能力。12 现状安卓系统的源代码是开放的,它是由操作系统、用户界面、应用组件和中间件组成的一个完全的设备平台。最开始在中国的Android系统的名字并不是安卓,而是“安致”,是一个在Linux系统上运作的手机平台。后来谷歌和几十个移动电话公司建立的手机开放联盟将它开发。并大力推广此系统。其使用软件栈体系结构,主要被分为三部分。Linux系统会提供各种各样的基础功能,而其它的应用功能的实现只能让开发者自己来通过基础功能研发,能让程序正确编写的就是java语言。刚开始大家都以为谷歌这次开发大力推广的产品是一种手机,并不是一个移动平台。直到2010年,谷歌才发布了自己的品牌手机。而如今虽新版本的SDK为Android 6.0.1。Android平台目前拥有大量的应用涉及各个领域。而在日常生活中,游戏已经是每个智能Android设备必须具有的功能之一了,在本文中以打地鼠作为课题重点研究这个Android平台必备的软件之一。1.3游戏的目的与意义智能手机的普遍化使得当今社会电子游戏在逐步渗透进人们的生活中,为人们的业余生活带来无穷乐趣,人们也越来越离不开智能手机和游戏,让其在生活中的分量越来越不容忽视。不仅这样,我们可以毫不夸张地预言,伴随着智能手机和游戏地不断地创新和发展,今天的手机游戏不仅仅是一种娱乐方式,而且会慢慢发展成一种文化现象,使我们的文化更加多样化。本游戏的制作属于电子游戏中的经营类游戏。简单的益智类游戏可以使玩家体验到娱乐生活的乐趣,同时使业余时间得到消遣,丰富人们的生活和精神。1.4Android游戏的发展趋势随着社会的发展,人们的工作压力与日俱增。与此同时相应的减压放松的方式也慢慢发生了变化。人们更趋于在家或者工作闲余时间以电子游戏的方式达到娱乐的目的。从商业的角度来说,电子游戏的未来的可以实现的利润和继续规模扩大的上升空间是非常大的。现如今Android的市场份额占总体智能手机市场份额的50%以上,与前几年相比,一种不能停止的趋势发展的势头。让越来越多的开发者加入到安卓应用的行列中发展。在2010年,Android市场份额仅占4.7%左右,并其市场只有不到20000个应用程序。但在2011年初,这个数字就已经超过了25万字大关。可见,Android游戏的开发和使用已渐渐深入人心Android手机游戏应用开发已渐渐占据市流。1.5系统调研1.5.1 技术可行性分析 安卓系统平台是一个将Linux开源作为前提和基础的移动操作系统。这个系统是谷歌最先发布出来的,具体的发布时间是在2007年11月。安卓平台的构成有下面的几个部分一起组成:操作系统、中间件、接口和应用软件组成。是第一个要为移动终端创造的一款真正开放的完整的操作系统。说道Android操作系统平台的优势,不得不提到最突出的两个特点“免费”和“开源”。 免费:操作系统是免费的,让手机厂商可以使用免费安卓操作系统,使手机的生产成本大幅降低,渐渐使得安卓普及开源:安卓手机生产操作系统代码公开,不仅让开发者能够在一个统一的开放平台上进行程序开发,并且可以解决目前市场上不同智能机之间的信息交换问题,因为不同的文件格式,如信息交换,程序的内容不能移植等;并且安卓的开机源就意味着手机用户不必接受被动移动电话制造商默认的设施和环境,使用者完全可以根据自己的想法自定义手机的配置。1.5.2经济可行性分析 安卓手机游戏现如今已经被越来越多的人所接受,带来的资金效益也是越加的明显,越来越多的安卓游戏再不断的出现,可见其经济效益之大。2 技术原理基础理论2.1开发工具Eclipse是一个非常高的java IDE工具的市场份额,安卓推荐使用Eclipse来开发安卓应用,并将ADT供给给其作为它的一个特别的插件。2.2系统特点安卓系统的最底部是将Linux系统作为基础,它是把不同的软件一层一层进行叠放的方法来进行组建。这种特殊的软件构成方式使不同的软件层相互分隔开,这就促使了不同的软件之间分工明确和清晰。不同软件层之间的低耦合是保障,就算是下层的层下或者层内发生任何的变化,在它上层的应用程序都不会发生改变,所以不需要进行修改。Android系统主要由5部分组成: 应用程序层:应用程序层作为系统应用的核心,如电子邮件客户端、地图、浏览器等。这些程序主要是用java写的,玩家主要通过这些应用程序来实现对手机的操作。l 应用程序框架:这个组成部分可以为程序的开发者供给很多的应用程序的连接口。开发的应用程序功能模块,主要符合了框架的协议,然后其他应用程序也可以使用此功能模块。 函数库:函数库包含一组C / C+库所使用的不同的组件。正常情况下,C / C+库是不可以被安卓使用者直接调用的,可是,如果有了一个应用程序的话,就可以使用C / C+库。 安卓操作系统由2部分组成:安卓核心库和Dalvik虚拟机。其中,安卓核心库提供了大部分的java语言的功能,而虚拟机则的任务是使安卓程序运行。 Linux内核:这个系统是在把Linux2.6作为基础上开发出来的。Linux内核可以为安卓平台具备很高的安全性能、对信息进行存储和管理、对程序运用的过程进行规范和管理、将不同层次的协议汇总和驱使模型发挥其应有的作用等好多种不同的功能。而且它是在硬件层和软件层两个不同层次之间的抽象层。图2.12.3安卓的handler方法Handler的定义:最重要的任务是用来将子线程的数据进行收纳,然后将接受的数据和主线程用来更新用户界面。说明:当安卓程序开始运行的时候,打开的不是子线程,而是一个主线程,界面控件管理界面的主线程,进行事件一个一个的发送, 打个比方, 如果你点击一个按钮, 安卓会将事件一个一个的发送到按钮上,来使你的操作有所反应。 当你想要完成一个时间较长的操作的时候,比如这些例子: 在网上获取一些数据,还有你想读取本地一些大的数据的时候,你不可以在主线程中进行这些操作,如果你这样做,来主线程中操作,你就会发现这是一个错误的操作,界面出现假死。 而且在一定的时间内并没有运行成功的话,将会收到安卓系统的一个错误警告强制关闭。到了这个时候,我们就需要子线程,需要将较长时间的操作放在子线程中,因为用户界面的更新需要子线程的运行,安卓主线程是线程不安全的,换句话说,用户界面的更新只可以通过主线程中操作,子线程中操作是不安去的。所以,就有Handler,Handler就是用来处理发生这种情况的,Handler实在主线程中就行的(用户界面线程中),子线程凭借消息对象来进行传递数据。这样的话,Handler就承担着接受子线程发送过来的(子线程用sedMessage()方法传递)消息对象,(里面包含数据), 再把这些消息放入主线程队列中,从达到主线程更新用户界面的目的。3 项目总体概要3.1游戏需求分析3.1.1对功能的规定这次论文题目是基于安卓的打地鼠游戏的设计与实现。使玩家可以选择不同模式的打地鼠游戏,在规则下完成游戏。“打地鼠”这款游戏需要实现主要功能如下:(1)游戏框架设计;(2) 游戏中各个Activity之间实现数据传输;(3) 按键的设计与实现(4) 得分的设计与实现(5)规定时间的设计与实现(6)地鼠的出现的设计与实现(7)按键触发事件的实现开始游戏地鼠的随机出现按对应出现地鼠的位置触发事件分数加成规定时间内结束游戏 图3.13.2游戏方法介绍3.2.1 游戏模式游戏分四种模式,分别为闯关模式,随机模式,计时模式,无尽模式。闯关模式:游戏开始后,会随机在7个地洞出现地鼠,每关要求击打地鼠个数不同,成功达标目标会出现提示框,下一关或者返回菜单。当地鼠逃跑或者击打农民,则闯关失败。随机模式:游戏开始,地鼠会随着地洞的随机出现而出现,农民也会出现,当生命为零则游戏结束。计时模式:三种计时方式,开始后开始倒数,地鼠出现方法会和随机模式一样出现,时间归零后游戏结束。无尽模式:游戏没有时间和生命限制,可以一直击打地鼠,长时间进行游戏。4 项目具体实现4.1软件框架流程图点击开始游戏按钮进入游戏界面的activity通过handler的方法更新按钮上图片的样式地鼠的按钮非地鼠的按钮按下时并没有发生更新的UI线程按下时会通过handler接受按键的动作并传输数据更新UI线程更新后会重新随机出现带有地鼠的按钮并更新分数的数据更新后会不会重新随机出现带有地鼠的按钮并更新分数的数据 计时结束之后会弹出对话框问是否继续游戏和退出游戏 图4.14.2项目软件核心程序/-设置activity界面-/public GameView(MainActivity context) super(context);mContext = context;running = true;mContext.isPause = false;lock = new ReentrantLock();initBitmap();initGameInfo();playBackMusic();/hammer = new HammerAnima(imgMuchui, imgHit, 300, 700);new Thread(this).start();/* * */private void playBackMusic() mContext.playBackgroundMusic();/* * */public void initGameInfo() lock.lock();udaList.clear();lock.unlock();runAwayNum = 0;curLevel = 0;score = 0;linkHit = false;linkHitScore = -5;if(Const.gameMode=Const.gameMode_Timer)timeNum = Const.timeNum;killNum = 0;if(Const.gameMode=Const.gameMode_Random)hpNum = Const.hpNum;killNum = 0;if(Const.gameMode=Const.gameMode_Super)hpNum = 10;killNum = 0;startGame();mContext.isPause = false;/-模式选择-/if(authController(v.getId()Intent intent = new Intent(mContext, MainActivity.class);Bundle bundle = new Bundle();switch (v.getId() case R.id.btnGameLevel:Const.gameMode=Const.gameMode_Level;/闯关模式break;case R.id.btnGameRandom:Const.gameMode=Const.gameMode_Random;/随机模式Const.hpNum = 10;break;case R.id.btnGameTime:Const.gameMode=Const.gameMode_Timer;/计时模式showSelTime(intent);break;case R.id.btnGameSuper:Const.gameMode=Const.gameMode_Super;/无尽模式break;if(v.getId()!=R.id.btnGameTime)intent.putExtras(bundle);startActivity(intent);/-计时模式-/private void showSelTime(final Intent intent) TextView textView = new TextView(mContext); textView.setText(请选择挑战时间); textView.setTextSize(24); textView.setGravity(Gravity.CENTER); textView.setBackgroundColor(getResources().getColor(android.R.color.darker_gray); textView.setTextColor(getResources().getColor(R.color.fontColor);new AlertDialog.Builder(mContext).setView(textView).setPositiveButton(30秒, new DialogInterface.OnClickListener()Overridepublic void onClick(DialogInterface dialog, int which) Const.timeNum = 30;startActivity(intent);).setNeutralButton(45秒, new DialogInterface.OnClickListener()Overridepublic void onClick(DialogInterface dialog, int which) Const.timeNum = 45;startActivity(intent);).setNegativeButton(60秒, new DialogInterface.OnClickListener()Overridepublic void onClick(DialogInterface dialog, int which) Const.timeNum = 60;startActivity(intent);).show();/-当计时器计完时之后弹出对话框并提示是否继续游戏-/private void existGame()TextView textView = new TextView(mContext); textView.setText(要退出游戏吗?); textView.setTextSize(24); textView.setGravity(Gravity.CENTER); textView.setBackgroundColor(getResources().getColor(android.R.color.darker_gray); textView.setTextColor(getResources().getColor(R.color.fontColor);new AlertDialog.Builder(mContext).setCustomTitle(textView).setPositiveButton(否, null).setNegativeButton(是, new DialogInterface.OnClickListener() Overridepublic void onClick(DialogInterface dialog, int which) finish();).show();5 系统测试51软件的运行 图5.1.1游戏开始界面,选择不同的模式开始游戏 图5.1.2击打地鼠会得到分数加成,地鼠逃跑击打错误减生命 图5.1.3弹出对话框提示是否重新挑战或者返回菜单6 总结与展望6.1项目展望这个游戏可以更加的完善,我们可以再增加地鼠随机出现的速度会逐渐加快,还有可以对按错别的按钮分数会进行扣分并且时间也会相应的减少。6.2 项目总结 该项目主要用于更新用户界面处理程序的线程以及使用消息处理程序来发送消息,加上监听器来触发事件的产生。利用线程来使倒计时不断的更新时间,使时间不断减少。利用

温馨提示

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

评论

0/150

提交评论