毕业设计基于Android和Wifi技术的手机对战游戏设计.doc

上传人:仙人指路1688 文档编号:2394299 上传时间:2023-02-17 格式:DOC 页数:51 大小:1.91MB
返回 下载 相关 举报
毕业设计基于Android和Wifi技术的手机对战游戏设计.doc_第1页
第1页 / 共51页
毕业设计基于Android和Wifi技术的手机对战游戏设计.doc_第2页
第2页 / 共51页
毕业设计基于Android和Wifi技术的手机对战游戏设计.doc_第3页
第3页 / 共51页
毕业设计基于Android和Wifi技术的手机对战游戏设计.doc_第4页
第4页 / 共51页
毕业设计基于Android和Wifi技术的手机对战游戏设计.doc_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《毕业设计基于Android和Wifi技术的手机对战游戏设计.doc》由会员分享,可在线阅读,更多相关《毕业设计基于Android和Wifi技术的手机对战游戏设计.doc(51页珍藏版)》请在三一办公上搜索。

1、安徽工程大学本科毕业设计(论文) 专 业: 雷峰塔 题 目: 基于Android和wifi技 术的手机对战游戏 作 者 姓 名: 雷锋 导师及职称: 法海 导师所在单位: 计算机与信息学院 2012年6月11日基于Android和wifi技术的手机对战游戏摘 要随着现代科技的飞跃发展,3G智能手机为我们带来了很多便利,给我们提供了一个高效的平台,在社会各界得到越来越广泛的应用。因此,本文围绕一个“基于Android和wifi技术的手机对战游戏”程序的设计和应用系统的开发课题为背景,详细介绍了在Android平台上以Java为语言编写游戏的过程。此游戏结合现在已有技术,基于游戏动画设计的基本原理

2、。设计一个基于Android平台的射击类的游戏应用。主要包含游戏的菜单设置,游戏动画的实现,基于图形的碰撞检测,游戏数据在手机系统之间的交互的实现。 射击类游戏的开发不仅是一个简单游戏的编写过程,更重要的是在系统分析和设计阶段所做的工作。该程序在设计过程中严格遵循软件工程学的方法,用分阶段的生命周期计划严格管理,并主要讲述了程序的总体设计、详细设计阶段,对程序进行需求迭代,不断修正和改进,画图利用了双缓存技术,直到形成一个完善的可行性系统.界面美观、方便的操作与良好的视觉感应共同构成了本次的设计。关键词:Android;游戏;TCP;UDP;C/S模式A Mobile Fighting Gam

3、e Based on Android and WIFIAbstractWith the rapid development of modern science and technology, 3G smart phone has brought us a lot of convenience, provide us an efficient platform to get more and more widely in the community. Therefore, this article focus on a Mobile Fighting Game Based on Android

4、and WIFI and design and describe the process of writing games on the Android platform in Java language. This game combines existing technologies, the basic principles of game animation design. Design an application based on the Android platform. Contains the game menu settings, and the realization o

5、f the game animation, graphics-based collision detection,the interaction of game data between the phone system.Shooting Game development is not only a simple preparation process of the game, more importantly, the work done in systems analysis and design phase. Strictly follow the methods of software

6、 engineering in the design process, the program phased life-cycle plan, strict management, and focuses on the overall design of the program, the detailed design stage, the program needs iteration, constantly revised and improved, drawing use double-buffering technology, until the formation of a feas

7、ibility beautiful interface, easy operation and good visual perception together constitute the design.Keywords:Android; Game;TCP; UDP; C/S model目 录引 言1第一章 绪论21.1选题的背景21.2国内外研究现状21.3 发展趋势3第二章 需求分析52.1相关技术介绍52.2开发环境及工具82.3开发环境的配置82.4 开发工具的配置92.5 功能需求112.6 游戏性能分析12第三章 概要设计143.1 Android的Activity生命周期结构图1

8、43.2 手机游戏框架图163.3 服务器客户端173.4 程序流程图18第四章 详细设计195.1 模块实现19第五章系统测试26结论与展望30致 谢31主要参考文献32附录A 外文文献及译文33附录B 主要参考文献题录38插图清单图2- 1 软件框架图5图2- 2 Wifi模块图8图2- 3 JDK配置图9图2- 4 Eclipse安装插件图10图3- 1功能需求图12图4- 1 Activity生命周期图14图4- 2游戏框架图16图4- 3客户端服务器通信图17图4- 4程序流程图18图5- 1 Android手机坐标轴图19图5- 2游戏设置界面26图5- 3游戏菜单界面27图5-

9、4游戏界面28图5- 5 游戏成功界面28图5- 6联机游戏界面29引 言随着移动设备的日益普及,使用Android技术开发手机软件受到越来越多人的青睐。在此背景下,本课题开发了一款Android平台下的手机游戏空战射击。本文首先对Android的研究背景,系统架构以及开发环境进行介绍,然后就玩家对游戏的需求进行一定的分析,最后运用Android技术实现射击游戏的开发,并合理布局游戏界面,使游戏界面更加美观和人性化,实现了游戏的基本功能,最终可以让玩家享受游戏的乐趣。随着计算机与网络的普及,人们生活水平的提高,手机游戏越来越成为人们生活中不可或缺的一部分,在人们繁忙的工作之余,给人带去欢乐与放

10、松。而一款手机游戏,能和周围的同伴一起游戏,更使得游戏的可玩性大大提高,使得人们更能的投入到游戏中去。随着手机游戏产业的规模越来越大,开发一款成功的电脑游戏靠个人之力已非易事。不过,随着市场上开发的游戏产品越来越丰富,各种题材的游戏越来越多,创意已成为一款成功游戏的最重要的特点。例如目前流行的游戏,虽然都是一些很小的休闲游戏,但是因其特有的风格,使得它们都大获好评。我的毕业设计题目为基于”Android和wifi技术的手机对战游戏”。程序的编写按照要求,分为两大模块,单机版与联机版。第一章 绪论1.1选题的背景目前随着移动设备越来越普及以及移动设备的硬件的提升,移动设备的功能越来越完善,移动设

11、备的系统平台也日渐火热起来。目前国内最常见的移动开发平台有Symbian,iPhone,Windows Phone以及当下正在逐步兴起的Android。目前为止国内已经有很多Android系统的用户。截止2010年第二季度Android系统的国内市场占有率已经过10%,在西欧以及北美智能手机市场占有率也在20%左右。可见Android系统正在崛起之中。但是对于Android系统的应用和开发在国内仍然属于起步和探索阶段。急需要大量的相关技术和人员的投入。下面首先介绍一下Android系统。Android是基于Linux内核的软件平台和操作系统,是Google在2007年11月5日公布的手机系统平

12、台,早期由Google开发,后由(Open Handset Alliance)开发。它采用了软件堆层(Software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux核心工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程式的一部分。1.2国内外研究现状1.2.1 国内外手机系统现状目前国外各软硬件厂商已经推出过多款手机操作系统。下面简单介绍一下现主流手机操作系统。 现阶段使用较广泛大家也相对熟悉的手机操作系统是由诺基亚公司主导推出的Symbian 操作系统。Symbian是为手机而设计的操作系统,它是一个实时性,多任务的纯32位嵌入式的操作

13、系统,具有低能耗,内存占用较少等特点。现在流行的Symbian系统有以下四个版本,分别为S40、S60(第二版)、S60(第三版)、S60(第五版)。S60(第五版)为触摸屏手机版本。iOS是由苹果公司为iPhone开发的操作系统。它主要是给iPhone、iPod touch以及iPad使用。就像其基于的Mac OS X操作系统一样,它也是以Darwin为基础的。iOS的系统架构分为四个层次:核心操作系统层(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),可轻触层(the Cocoa Touch la

14、yer)。系统操作占用大概240MB的存储器空间Windows Mobile 系列操作系统是从微软计算机的Windows操作系统演化而来的。Windows Mobile系列操作系统功能强大,而且支持该操作系统的智能手机大多数都采用了英特尔嵌入式处理器,主频比较高,在其它硬件配置(如内存、储存卡容量等)上也比采用其它操作系统的智能手机要高出许多,因此性能比较强劲,速度比较快。PalmOS属于Palm公司开发,是一种32位的嵌入式操作系统,是一套专门为掌上电脑编写的操作系统,是一种轻量级、比较开放的操作系统,占用的内存非常小。现在多用Paml公司生产的手机上。该系统允许用户在其基础上编写和修改相关

15、软件,使支持的应用程序更加丰富多彩。Palm系统与其他手机系统相比在其它方面也还存在一些不足,如Palm操作系统本身不具有录音、MP3播放功能等,但是可以通过加入第三方软件或硬件设备来实现。相对国外手机系统百花齐放的局面,国内手机操作系统则处于刚起步的阶段。目前国内还没有自主研发并商品化的手机操作系统。当然近些年来国内企业和我国政府在这方也投入了大量的人力和物力。同时也取得了一定成果。在2009年8月,由中国移动所主导开发OPhone平台面世。OPhone平台采用开源的Linux作为系统内核,借鉴并兼容Android平台,集成灵活高效的Java应用框架,充分借鉴当下主流手机操作系统所具有的良好

16、用户体验,提供了一套完整的电话解决方案和各类移动数据业务解决方案。1.2.2 国内外手机应用现状随着3G在中国的全面启动,它所带来的巨大机遇和新生力量,大规模的网络建设正不断深入展开。但不可否认的是我国在通信领域中相比许多发达国家仍然存在着不小的差距,就在国人还在为EDGE这种传输速度仅能达到384KB/秒的2.75G过渡技术而欣喜的时候,国外早已开始试行HSDPA这种3.5G技术,传输速度更可达到惊人的数兆每秒,而基于其上所开发的延伸功能更是数不胜数,所以国内外手机应用也存在的较大的差异。但国内外对手机应用的需求方向是大致相似的,主要集中在信息服务,娱乐,学习这些方面。目前国内外手机应用服务

17、方向主要有基于地理位置的信息服务(Location Based Service LBS)它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标),在GIS(Geographic Information System,地理信息系统)平台的支持下,为用户提供相应服务的一种增值业务。例如手机定位,导航服务。近年来十分热门的网络社交服务(Social Networking Services)也已进入到手机客户端领域。例如国内有名的社交网站人人网已经针对Iphone,android,塞班等手机平台推出了手机客户端。国外最

18、大的社交Fackbook也已经传出正在进行针对手机的产品的研发。Twiter,Myspace等国外知名社交类网站都已经推出手机版。国内淘宝网旗下口碑网在今年也已经推出针对多个手机平台的客户端程序。MSN,QQ等即时通信类的应用也已经在各个主流手机平台推出。 手机办公类软件在手机上也正日趋完善,在手机上编辑查看各类文档已经实现,在android平台上的QuickOffice就是这样的软件。在Google Market(一个谷歌针对android系统用户所开发的应用商场)上已经有过万的企业应用办公套件。手机娱乐游戏类应用,该类应用作为传统类手机应用,在各个平台上发展已近相对完善,手机上对各种流媒体

19、的播放也已完美的支持。各类传统PC游戏厂商进入手机领域。1.3 发展趋势随着3G应用的不断开发推广,用户会越来越需要更加个性化、优质化的多媒体数据服务,用户希望能够随时、随地无缝利用3G网络进行办公、网上交易、游戏娱乐、欣赏影视节目、收听和下载音乐等。根据观察,在不久的将来,移动手机终端将会在以下若干方面具有新的发展。首先,提供智能提醒服务,手机能够与用户实现密切配合,并监控用户的个性化设置(保持在本地或者云端),当重要时间点或关键事物需要用户注意时,手机会向用户发出“提醒”服务,服务包括日程提醒、交通状况、最佳行车路线、最佳泊位、优惠活动、实时新闻、体育赛事、天气情况、股市行情、好友活动、亲

20、友生日等。其次,提供虚拟现实体验,手机可以借助传感器、周边设备了解到您的身边环境,并根据收集到的信息,智能的为您提供有用的信息,如在网络世界养的宠物,可以借助音频设备表达叫声,借助马达和位置传感器等传递其跳、跃等行为信息;也可以在用户购物时,提供相关的同类产品价格参考,提醒用户附近的那个卖场更物美价廉;根据实际场景,为用户及时提供正在操控的产品的使用方法提醒。接着,发挥物联网的优势,借助无处不在的传感器,可以感知并分享到周围世界的海量信息,这些信息将在“云端”得到整合,帮助用户及时、准确的获得气息信息、交通路况。另外借助物联网,用户间可以方便、快速的分享资源,协助和交互。如进行端到端的多人游戏

21、、照片分享、书籍分享、音乐分享等。然后,作为经济工具,在交通或者信息不发达的情况下,帮助用户找到最佳的市场,获得有价值的帮助信息,帮助用户从事的经济活动的收益率。最后,更加智能、安全的设备,随着智能手机的不断普及和更加智能,手机软件的更新、升级将会变得越发简单,并会为用户提供工具或信息,让用户有能力和权力决策那些内容可以浏览、下载或分享。在安全性上也将更加出色,能够十分有效的帮助用户进行获取到的内容的管理,保护用户的个人隐私和基于手机的金融活动如电子钱包、在线支付、在线贸易等。第二章 需求分析2.1相关技术介绍2.1.1 Android平台介绍Android作为一个移动设备的平台,其软件层次结

22、构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。根据Android的软件框图,其软件层次结构自下而上分为以下几个层次:第一、操作系统层(OS)第二、各种库(Libraries)和Android 运行环境(RunTime)第三、应用程序框架(Application Framework)第四、应用程序(Application)图2- 1 软件框架图操作系统层(OS)Android使用Linux2.6作为操作系统,Linux2.6是一种标准的技术,Linux也是一个开放的操作系统。Android对操作系统的使用包括核心和驱动程序两部分,Android

23、的Linux核心为标准的Linux2.6内核,Android更多的是需要一些与移动设备相关的驱动程序。主要的驱动如下所示: 显示驱动(Display Driver):常用基于Linux的帧缓冲(Frame Buffer)驱动。 Flash内存驱动(Flash Memory Driver) 照相机驱动(Camera Driver):常用基于Linux的v4l(Video for )驱动。 音频驱动(Audio Driver):常用基于ALSA(Advanced Linux Sound Architecture,高级Linux声音体系)驱动。 WiFi驱动(Camera Driver):基于IEE

24、E 802.11标准的驱动程序 键盘驱动(KeyBoard Driver) 蓝牙驱动(Bluetooth Driver) Binder IPC驱动: Andoid一个特殊的驱动程序,具有单独的设备节点,提供进程间通讯的功能。 Power Management(能源管理)各种库(Libraries)和Android 运行环境(RunTime)本层次对应一般嵌入式系统,相当于中间件层次。Android的本层次分成两个部分一个是各种库,另一个是Android 运行环境。本层的内容大多是使用C+实现的。 在其中,各种库包括: C库 :C语言的标准库,这也是系统中一个最为底层的库,C库是通过Linux的

25、系统调用来实现。 多媒体框架(MediaFrameword):这部分内容是Android多媒体的核心部分,基于PacketVideo(即PV)的OpenCORE,从功能上本库一共 分为两大部分,一个部分是音频、视频的回放(PlayBack),另一部分是则是音视频的纪录(Recorder)。 SGL:2D图像引擎。 SSL:即Secure Socket Layer位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。 OpenGL ES 1.0 :本部分提供了对3D的支持。 界面管理工具(Surface Management):本部分提供了对管理显示子系统等功能。 SQLite:一个

26、通用的嵌入式数据库 WebKit:网络浏览器的核心 FreeType:位图和矢量字体的功能。 Android 的各种库一般是以系统中间件的形式提供的,它们均有的一个显著特点就是与移动设备的平台的应用密切相关。 Android 运行环境主要指的虚拟机技术Dalvik。Dalvik虚拟机和一般JAVA虚拟机(Java VM)不同,它执行的不是JAVA标准的字节码(bytecode )而是Dalvik可执行格式(.dex)中执行文件。在执行的过程中,每一个应用程序即一个进程(Linux的一个Process)。 二者最大的区别在于Java VM是以基于栈的虚拟机(Stack-based),而Dalvi

27、k是基于寄存器的虚拟机(Register-based)。显然,后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的特点。应用程序框架(Application Framework) Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。由于上层的应用程序是以JAVA构建的,因此本层次提供的首先包含了UI程序中所需要的各种控件: 例如: Views (视图组件)包括 lists(列表), grids(栅格), text boxes(文本框), buttons(按钮)等。甚至一个嵌入式的Web浏览器。 一个Andoid的应用程序可以利用应用程序框架中

28、的以下几个部分: Activity (活动) Broadcast Intent Receiver (广播意图接收者) Service (服务) Content Provider (内容提供者)应用程序(Application) Android的应用程序主要是用户界面(User Interface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。Android本身提供了主屏幕(Home),联系人(Contact),电话(Phone),浏览器(Browers)等众多的核心应用。同时应用程序的开发者还可以使用应用程

29、序框架层的API实现自己的程序。这也是Android开源的巨大潜力的体现。2.1.1 Wifi介绍Wi-Fi的全称是Wireless Fidelity(无线保真技术),又叫802.11b标准。它的最大优点就是传输速度较高,可以达到11Mbps,另外它的有效距离也很长,同时与已有的各种802.11DSSS设备兼容。伴随着Intel公司提出的笔记本电脑芯片组“迅驰”被越来越多的人认可,这一技术也逐渐成为了大家关注的话题。不过自2005年底开始,很多手机厂商,特别是以生产智能手机为主的品牌便开始将WiFi引入自己的产品当中。Wi-Fi技术突出的优势在于: 其一,无线电波的覆盖范围广,基于蓝牙技术的电

30、波覆盖范围非常小,半径大约只有50英尺左右约合15米,而Wi-Fi的半径则可达300英尺左右约合100米,办公室自不用说,就是在整栋大楼中也可使用。最近,由Vivato公司推出的一款新型交换机。据悉,该款产品能够把目前Wi-Fi无线网络300英尺,接近100米的通信距离扩大到4英里约6.5公里。 其二, Wi-Fi技术传输速度非常快,可以达到11mbps,符合个人和社会信息化的需求。 其三,厂商进入该领域的门槛比较低。厂商只要在机场、车站、咖啡店、图书馆等人员较密集的地方设置“热点”,并通过高速线路将因特网接入上述场所。这样,由于“热点”所发射出的电波可以达到距接入点半径数十米至100米的地方

31、,用户只要将支持无线LAN的笔记本电脑或PDA拿到该区域内,即可高速接入因特网。也就是说,厂商不用耗费资金来进行网络布线接入,从而节省了大量的成本。Android的Wifi模块框图:图2- 2 Wifi模块图2.2开发环境及工具微软XP操作系统下,游戏使用eclipse 3.5进行开发,jdk采用的是6.0,sdk2.3开发环境的配置2.3.1 JDK的配置首先到sun官方网址:下载jdk,注意是jdk不是jre,下载后如果是解压包那就解压到某目录下,如:C:ProgramFilesJavajdk1.6.0_20,右键点击我的电脑-属性-高级,点击下面的环境变量,在下面的”系统变量”处选择新建

32、在变量处输入JAVA_HOME变量值中输入刚才的目录,比如C:ProgramFilesJavajdk1.6.0_20.图2- 3 JDK配置图确定后再新建一个变量名为classpath,变量值为:%JAVA_HOME%lib/rt.jar;%JAVA_HOME%lib/tools.jar,确定后找到PATH的变量,双击或点击 编辑,在变量值前面加上%JAVA_HOME%/bin。如图:图2-4然后开始运行cmd,输入java或者javac看看有没有效果,如果出来一些表述的信息,说明jdk已经安装成功。2.3.2 SDK的配置因为我们要开发Android应用程序,所以下载的sdk是Google那

33、里下载,地址在 h,如果看到一些andorid关于信息,说明sdk已经安装成功。2.4 开发工具的配置当JDK和SDK都安装配置成功后,还要对eclipse进行配置,必须给eclipse添加eclipse插件才行,打开eclipse后,点击菜单栏的helpinstall new software .然后点击Add会出来一个Add Site的窗口,这里Name可以自己命名,location中输入插件的网络地址http:/dl- DDMS”和”Andoird Development Tools”都选中,finish就可以了,完成后会提示重启eclipse来加载插件,重启后就可以了。操作如图2-3图

34、2- 4 Eclipse安装插件图2.5 功能需求游戏音效:在游戏中,按照声音的功能不同,可以把它分作音乐和音效两部分;按照声音的来源不同,又可以分为麦克风、话筒输入和音箱、耳机输出;按照声音的作用不同,还可以分为背景渲染和对事件警示两种。由此看来,针对不同的需求设计不同的声音,使其充分满足游戏的需要,更好地为主题服务,是优秀的游戏策划应该学习的内容之一。 声音,作为环境渲染和气氛烘托的手段,使游戏更具有强烈的时代文化气息,强调了开发者所要表达的主题,对于游戏内涵的增强具有积极的意义。严格根据游戏的需要,选择恰当的声音,是对游戏内涵的增强和补充,能让玩家的视和听统一结合起来,让他们更快地融入角

35、色,更深入地体会到游戏的乐趣。这正是开发者想要达到目的。在此次毕业设计中我们考虑了2种音效:背景音效和游戏音效。重力感应:Android为我们提供了一系列的系统功能,重力感应是其中的一个,我们可以调用系统函数来实现对手机的重力感应,只要在xml文件中添加上相应的用户许可即可。联机作战:在游戏设计时,我们想要完成2部手机之间能够建立连接,可以通过Wifi实现连接来实现游戏数据的相互传输。功能需求图:图3- 1功能需求图2.6 游戏性能分析任何一款游戏,其性能必然是我们不可不考虑到的问题,如果你开发出来的游戏让玩家玩的时候,总是画面不流畅,在玩家期望得到某些效果的时候,你不能很好的提供给他们所需要

36、的,那么这款游戏就不能算的上是一款好游戏,所以在游戏性能必须要优化。优化的方法多种,绘图优化: 1、脏矩形:每次都重绘整个背景图,其实是非常浪费的,前后两帧的图其实只有很少的一部发生了变化,因此可以只重绘变化的部分。这是一种常用的绘图优化方式,需要注意的是,android用了双缓冲,也就是说,使用脏矩形的时候,需要连续绘制两次才能完成对surface的刷新。 2、卷屏:这是常用的一种方法,缓存整张背景图,抽象出一个可视窗口,仅显示窗口中的内容,窗口的移动方向与sprite相同,与背景运动方向相反。android游戏背景图的分辨率一般与屏幕的相同,这种方法很少会被用到。 引擎优化: 1、流水作业

37、化资源:简单来说,就是整合资源,不用的资源就及时释放,需要用到的资源再加载,类似流水线生产过程。比如,游戏加载过程中,当前关卡(场景、模式等等)使用不到的音乐或者图像资源就全部释放,仅加载需要用的资源;用不到的线程,不要让它休眠,一定要将它处理掉;如果有的资源只用得到一部分,那么就拆解开来,仅加载需要的部分。 2、状态转移逻辑:游戏开发前一定要想清楚状态转移,冗余的状态变化将损耗框架的整体性能,对游戏流畅性的影响以及后期修改的成本往往是远远超出预期的。不要怕费力,一定要认真优化状态转移过程。此外,activity之间切换、ui线程和游戏线程之间的切换,都是非常花费时间的,应该尽力避免。 游戏逻

38、辑优化: 1、预处理:尽可能地预处理游戏逻辑中的运算。比如游戏中经常要用到随机数,就应该在游戏开始之前,生成足够的随机数供游戏逻辑调用,千万避免使用系统自身的rand()函数。这种优化方式难度比较大,但是往往是突破瓶颈的最有效手段。 2、算法优化:对需要优化的地方一定要优化,游戏算法很重要,不要简单实现功能,要尽量用最好的算法来实现。 3、语法优化:语法对运行速度也有很大影响,比如for循环,不同的写法,时间开销差别极大。 第三章 概要设计3.1 Android的Activity生命周期结构图图4- 1 Activity生命周期图onCreate():当我们的activity第一次运行的时候调

39、用,这里我们启动所有UI组件。在整个生命周期中只调用一次;onRestart():当activity从停止状态恢复的时候调用;onStart():在onCreate()后调用或者当activity从停止态恢复的时候调用。它始终在reStart()之前被调用;onResume():在onStart()后调用或者当activity从等待态恢复的时候调用;onPause():当activity进入等待状态时调用。当系统决定杀死我们的应用程序时,它也许是最后一道我们可以接收到的信息。这样我们就可以保存下我们想要保留的所有状态;onStop():当activity进入停止状态的时候调用。它首先被调用进入

40、等待状态。这意味着当一个activity停止了,它首先等待,这就是系统对我们的最后通知,我们可以保存下需要的状态。防止系统也许不会调用该方法,直接杀死activity。所以onPause()总是会在onStop()之前或activity被杀死之前调用,这样就可以让我们保存下我们想要的东西;onDestroy:在activity死亡的时候调用。这是我们想要保存信息用来下次使用的最后机会,activity一但死亡,onPause()或者onStop()之后的方法都无法被调用了【11】。3.2 手机游戏框架图图4- 2游戏框架图3.3 服务器客户端图4- 3客户端服务器通信图这里我们采用2种不同的网

41、络传输方式来传送数据:TCP用来建立连接、UDP用来传送游戏数据。3.4 程序流程图图4- 4程序流程图程序由一个主函数Activity,当游戏启动后被启动,然后给Activity加上SoundView视图,在SoundView里面我们可以设置游戏开始后是否开启音效,设置成功后从SoundView跳转到MenuView视图在这里我们看到菜单选项选择进入相应的视图;在帮助视图里我们可以看到游戏帮助和简单操作介绍、在游戏关于视图里我们可以看到游戏背景和开发人员信息;当我们进入快速游戏视图后,进行正常游戏,成功闯关后进入SuccessView视图,否则进图FailView视图,这些就是游戏的整体流程

42、。第四章 详细设计5.1 模块实现5.1.1 重力感应的实现public void initgravity() /重力感应 得到当前X值,X值取值范围为(-10,10)/当手机屏幕向左时X值为-10,向右时X值为10SensorManager sensorMgr = null; sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE); Sensor sensor = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); SensorEventListener lsn = n

43、ew SensorEventListener() public void onSensorChanged(SensorEvent e)x = e.valuesSensorManager.DATA_X;/得到当前X值 public void onAccuracyChanged(Sensor sensor, int accuracy) ;sensorMgr.registerListener(lsn,sensor,SensorManager.SENSOR_DELAY_NORMAL); /注册Listener,第三个参数是检测的精确度重力感应的实现主要利用在对飞机的飞行位置的控制,通过手机的左右倾斜来

44、控制飞机的移动,但是飞机的控制会受到屏幕的限制,飞机不能飞出屏幕之外。在这里我们需要注意的是android对坐标轴有它自己的规定,如图5-1:图5- 1 Android手机坐标轴图5.1.2 音效的实现public void initSound() /加载音乐文件mediaPlayer = new MediaPlayer();mpBack = MediaPlayer.create(this, R.raw.background); / 创建背景音乐mpBack.setLooping(true); / 设置音乐循环播放soundPool = new SoundPool(4, AudioManage

45、r.STREAM_MUSIC, 100);/初始化声音池soundPoolMap = new HashMap(); / 放置游戏音效soundPoolMap.put(1, soundPool.load(this, R.raw.explode, 1);/ 爆炸音效soundPoolMap.put(2, soundPool.load(this, R.raw.heromissile, 1); /hero发射炮弹音效soundPoolMap.put(3, soundPool.load(this, R.raw.enemymissile, 1);/ 敌机发射炮弹音效 public void playSoundPool(int sound, int loop) if(!isSound)/如果设置为没有打开声音,则返回,不播放音乐 return; AudioManager mgr = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE); /得到音乐管理器

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号