基于Android系统的手机游戏的设计与实现.pdf

上传人:qwe****56 文档编号:70002366 上传时间:2023-01-14 格式:PDF 页数:4 大小:232.33KB
返回 下载 相关 举报
基于Android系统的手机游戏的设计与实现.pdf_第1页
第1页 / 共4页
基于Android系统的手机游戏的设计与实现.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《基于Android系统的手机游戏的设计与实现.pdf》由会员分享,可在线阅读,更多相关《基于Android系统的手机游戏的设计与实现.pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、2 0 1 2年 第 5 基 于 A n d r o i d系统的手机游戏的设计与 实现 石 坚 李明江(1,2 黔南民族师范学院 计算机科学系,贵州 都匀5 5 8 0 0 0)摘:A n d r o i d 是以L i n u x为核心的手机操作平台,在基于 A n d r o i d系统的移动智能手机平台上实现“躲子弹”飞 行射击游戏的设计与开发,使用工厂开发模式,设计各种可以扩展的类,采用参数即函数的算法处理,随机产生子弹、敌 人和碰撞。关键词:A n d r o i d;手机游戏;飞行射 击;随机 中图分类号:T P 3 1 1 文献标识码:A 文章编号:1 6 7 4 2 3 8

2、9(2 0 1 2)0 5 0 1 0 4 0 4 On t h e De s i g n a n d I mp l e me n t a t i o n o f a n An d r o i d Ba s e d M o b il e Ga me S H I J i a n L I Mi n g j i a n g (1 G r a d e 2 0 0 8,D e p t ,o f c 0 r S c i e n c e,Q i a n n a n N o r m a l C o l l e g e f o r N a t i o n a l i t i e s;2 D e p t ,of

3、C o m p u t e r S c i e n c e,Q i a n n a n N o r m a l C o l l e g e for N atio n a l i t i e s,D u y u n 5 5 8 0 0 0,C h i n a)Ab s t r a c t:An d roi d i s a mo b i l e p h o n e p l a tf o r m b a s e d o n Lin u x Th i s p a p e r f o c u s e s o n t h e d e s ig n a n d e x p l o i t a t i o n

4、 0 f“Bu l l e t s Do d g i n g”a k i n d o f fli g h t s h o o t i n g g a n l e,i n a n A nd r o i db a s e d s y s t e mT h i s a p p l i c a t i o n u t il i z es t h e e x p l o i t a t i o n p a t t e rn o f f a c t o r y and d e s i g n s v a r io u s o f e】【t e l 1 s i b l e c l a s s e s and

5、 i s p r o c e s s e d w i th a l g o r i thm o f p a r a me t e r a n d c r e a t es r a n d o ml y b u l l e t a n d e n e my a n d c o ll i s i o n s Ke yw o r d s:An d r o i d;m o b i l e g a m e;mght s h oot i n g g a m e;r a n d o ml y 随着嵌入式技术和嵌入式系统的发展,手持设备迅速发展,目前,全球手机用户数已超过了 P C机 用户数,其中智能手机的比

6、例越来越高,智能手机的应用程序也随着用户群的增多而飞速发展。在智能 手机平台开发移动应用程序是今后的主流发展方 向。1 A n d r o i d平台简介 A n d r o i d 是一种以 L i n u x 为基础的开放源码操作系统,主要使用于便携设备。A n d r o i d是由 C,o o s l e 开发的、应用于智能手机的操作系统,是完全开源的,不存在任何阻碍移动产业创新的专有权障碍。1 其优点是:1)A n d r o i d的开放性。其开放性包括(1)A n d r o id以开源 L i n u x系统为基础,对于开源爱好者 而言,他们会觉得A n d ro i d平台更

7、能满足自己的使用需求。(2)A n d r o id对第三方软件是开放的,能促进 该系统第三方软件的发展。(3)A n d r o i d系统以 L i n u x 2 6为核心,其安全机制比较完善,增强了手机使 用的安全性。(4)A n d r o id平台已经形成由G o o g l e 牵头,O H A组织参与,系统支持商和服务供应商完善 搭配的运作机制,为 A n d roi d平台的快速发展提供了坚实的基础。与目前主流的苹果公司的 iQ s平台和诺基亚公司主推的S y m b i a a操作系统形成了手机平台中的三 国鼎立,2 0 1 1年第一季度,A n d r o i d在全球的

8、市场份额首次超过塞班系统,跃居全球第一。2 0 1 2年 2月 数据,A n d r o i d占据全球智能手机操作系统市场 5 2 5 的份额,中国市场占有率为6 8 4。随着 And r o i d 收稿 1 3 期:2 0 1 2 0 7 0 2 作者简介:1 石坚(1 9 8 9一),男,贵州从江人,计算机科学系2 0 0 8级学生,研究方 向:J A V A程序设计;2 李明江(1 9 7 5一),男,贵州思南人,副教授,研究方向:计算网络应用,计算机软件设计。1 0 4 2 o 1 2年 第 5 的快速发展,如今已允许开发者使用多种编程语言来开发 A n d r o i d应用程序

9、,而不再是 以前只能使用 J a-v a开发 A n d r o i d应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。2 躲子弹游戏的设计与 实现 2 1游戏功能分析 躲子弹是一款飞行射击类的小游戏,功能与其他飞行射击类游戏类似。它的最大特点是随机性很 强,例如每次出现的敌人种类、敌人每次发射的子弹、敌人每次刷新的位置、玩家每次发射的子弹等都具 有随机性。2 2设计思路 本游戏采用工厂模式设计即对每一需要使用的对象写一个 抽象父类,需要使用的对象由继承 此父类的子类产生,抽象父类不产生任何对象。只使用一个主线程,用于控制整 个游戏内容,包括玩家的移动,敌机移动,

10、发射子弹等。2 3详细设计 2 3 1游戏界面 A n d r o i d内核提供 的 A c t i v i t y类 主要用于处理用户操作。S u rf a c e类和 G a me 类是本游戏的两个重要 A c t i v i t y子类,它们继承了 A c t i v i t y,通过它们的 s e t C o n t e n t V i e w(V i e w)方法设定需要显示的视图。S u rf a c e 类用于显示和处理菜单界面,C a m e类用于显示和处理游戏内容。S u rf a c e j a v a 使用的视图来 自于 ma i n x ml 文件,里面设定了菜单界面

11、使用 的 按钮,文本等内容;G a me j a v a 使 用视图 G a me V i e w j a v a 此视 图设定了游戏 的 背景、屏幕高宽以及负责显示游戏相关 内容,同时它还是一个线程(图 1)。2 3 2游戏对象 图 1 游戏主菜单界面 躲子弹游戏的游戏对象主要有敌人(E n e m y)、玩家(H e r o)、子弹(B u l l e t)。它们 由三个类产生:E n e m y 类,H e r o类,B u l l e t 类。这三个游戏对象都采用工厂模式设计。由于敌人和子弹 的种类是多种多样 的,所以他们的父类不直接产生对象,而是 由继承他们的子类来 产生。每一种敌人

12、对应一个敌人的子类,每一种子弹对应一个子弹的子类(见图 2)。图 2 子弹、敌人类的 U ML图 2 3 3游戏机制 玩家有一定的生命值;敌人种类不同,生命值不同;玩家碰到敌人发射的子弹,生命值减少;1 0 5 黔南民族师范学院学报 2 0 1 2年第5期 敌人碰到玩家发射的子 弹,生命值减少;玩家碰到敌人,生命值减少;反之,敌人生命值不变;玩家得分与玩家存活时间和击毙敌人数量有关(见图3)。图 3游戏简单机制图 2 3 4关键功能设计(1)随机功能。通过 My D a t a 类中的公共方法 g e t E n e m y(i d)和 g e t R a n d o m I d(i)可以随机

13、获取一个 敌人类对象。首先通过 g e t R a n d o m(i)方法获取一个不大于敌人种类数的随机数,由此随机数可以在 g e tE n e m y(i d)里通过 s w i t c h 语句获取相应的敌人,从而达到随机选取敌人的目的,然后由 G a m e V i e w类 将其显示在屏幕上。同理,通过使用 M y D a t a 类中的g e t B u l l e t(i d)方法可以随机获取一种子弹,每次需要更新子弹时就 会调用此方法。具体实现代码如下:获取敌人对象 p u b l i c E n e m y g e t E n e my(i n t i d)s w i t

14、c h(i d)c a s e 0:r e t u r n n e w L e f t a n d R i g h t E n e m y(v i e w c o n t e x t,v i e w);c a s e 1:r e t u r n n e w L i n e R o u t e E n e m y(v i e w c o n t e x t,t h i s v i e w);r e t u r n n u l l;获取敌人子弹对象 p u b l i c E n e m y B u l l e t g e t E n e m y B u U e t(i n t i d)s w i

15、 t c h(i d)c a s e 0:r e t u rn n e w L i n e B u l l e t(v i e w c o n t e x t,t l i s v i e w);c a s e 1:r e t u rn n e w S e c t o r B u l l e t(v i e w c o n t e x t,t h i s v i e w);r e t u r n n u l l;得到一个随机数 p u b l i c s t a t i c i n t g e t R a n d o m(i n t C)R a n d o m r=n e w R a n d o

16、 m();r e t u r n r n e x t I n t(C);(2)玩家、敌人、子弹的移动 玩家移动通过触屏控制。玩家点击屏幕或者在屏幕上做拖动的动作,游戏人物就会移动到制定的 位置。这要利用 A c t i v i t y 类的 o n T o u c h E v e n t(M o t i o n E v e n t e v e n t)方法实现。当发生触摸屏幕事件时,A n d r o i d 系统会自动调用这个方法,可以重写此方法实现玩家的移动。敌人的移动使用的主要方法是敌人类里的公共方法 E n m e y M o v e(),此方法可以调整敌人的坐标,让敌人每次以一定的步

17、长移动,当然也可以重写它来实现各种移动轨迹。子弹的移动同敌人的移动类似,使用的是子弹类中的公共方法 fi r e()。(3)碰撞检测。碰撞检测包括:玩家和敌人的碰撞、敌人和屏幕边缘的碰撞、玩家和敌人子弹的碰 撞、敌人和玩家子弹的碰撞。在敌人、玩家、子弹三个类中,都有用于检测碰撞的方法,以敌人类的碰撞检测方法为例:p u b l i c v o i d c h e c k C o U i s io n(H e r o h e r o)检测是否碰到玩家 if(th i s X=h e r o g e tX()&t h i s X 1 0 6 黔南民族师范学院学报2 0 1 2年第5期=h e r

18、o g e t Y()&thi s Y=h e r o g e t Y()+h e r o g e t He r o B i t m a p()g e t H e i g h t()4)h e r o u p d a t e L i f e(t r u e);游戏线程启动时,将会反复调用生成在屏幕上的敌人的碰撞检测方法。当敌人的坐标与玩家控制 人物模型相互重叠时,则发生碰撞,玩家的生命值将会减少。(4)计分和游戏难度。游戏的计分机制和游戏的难度有关。随着玩家生存时间的增长,所得分数 就越多,不同难度下每一秒得到的分数不同;当敌人被玩家击落时,玩家会得到此种敌人所对应的分数。当游戏分数累计到一定

19、程度时,游戏难度增加。随着难度的提升,增加难度所需求的分数也增多,这是利用 My D a t a类里 的 g e t S c o r e s F o r L e v e l U p(i n t d i f)方法实现,参数 d i f 为当前游戏难度。方法代码:p u b l i c i n t g e t S c o r e s F o r L e v e l U p(i n t d i f)r e t u m S C O R E S F O R L E V E L _ U P+d i f 5 0;游戏难度增加的同时,敌人的数量和敌人子弹的数量也会增多,利用 My D a t a类里的 i n

20、 t e n e m y C o u n t s(i n t d if)和 in t b u l l e t C o u n t s(i n t d i f)这两个方法可以获得当前难度下敌人和子弹的数量。(5)游戏运行。游戏运行的线程是 G a me V i e w类,它继承了 A n d r o i d提供的 S u r f a c e V i e w类,是游戏 运行时的主要视图,主要负责让游戏的各个部分显示在屏幕上。G a m e V ie w类的主要方法如下:v o i d c r e a t e E n e m y()在屏幕上创建敌人 v o i d c r e a t e He r

21、o()在屏幕上创建玩家 v o i d u p d a t e D a t a()更新游戏数据并显示 v o i d u p d a t e E n e m y()更新敌人敌人状态 v o i d u p d a t e H e r o()更新玩家状态 v o i d r u n()线程运行的主要方法,也是游戏运行时的主要方法 2 3 5游戏数据封装与扩展性 游戏运行时需要的所有数据封装在 M y D a t a 类中,此类中有多个静态内部类和大量静态数据,游戏 运行时会在 M y D a ta 类中读取相关参数。把数据封装起来就增加了游戏的可扩展性:当需要修改任何数据时,只需将 M y D

22、a ta 类中的某些参 数修改;需要增添或者删除时,开发人员可以将不再需要的类删除,然后在 M y D a t a 类中做适当修改,增 添时同理。这样就可以在不影响原有数据和游戏内容的情况下修改和测试游戏。3 结束语 基于A n d r o id 平台的程序开发设计,有很好的应用前景,学会使用工厂开发模式,采用灵活的算法 处理,往往可以设计出丰富多彩的应用程序特例。针对本文的游戏,设计了各种可以扩展的类,采用参 数即函数的算法处理,很好地实现了设计 目 标。本游戏存在的不足:当游戏难度增加时,会因为内容的增多而出现运行不流畅的情况;计分机制不 够完善,没有与数据库进行结合,不能够进行分数的记忆

23、保存;游戏背景过于单调,没有进行背景模式的 选择;不能进行多用户的联机联网对抗,有待于进一步完善和改进。参考文献:1 h t t p:w w w y o u t u b e c o rn w a t c h?v=I n _ K P _ P s e 2 G R A M L I C H N A n d r o i d P r o g r a m m i n g M(2 0 0 8 0 2 2 1)2 0 1 1 一 o 3 0 5 h t t p:a n d b o o k a n d d e v o r g 3 (美)E d B u me t t e A n d r o i d基础教程 M 北京:人民邮电出版社 2 0 1 1 4 h e l l o 1 i u A n d r o i d游戏开发之飞行射击类游戏原理实现 O L 2 0 1 1 年 9月3日 h t t p:w w w a p k b u s c o rn a n d r o i d 一1 3 4 3 611 h t ml 5 陈国君 J a v a 2 程序设计基础(第2版)M 北京:清华大学出版社,2 0 1 0 6 聚众培训视频网 A n d r o i d 开发视频教程第一季 O L 2 0 1 1 责任编辑李永波 1 0 7

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 休闲娱乐

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com