基于Android贪吃蛇游戏开发.doc

上传人:刀*** 文档编号:87690070 上传时间:2023-04-16 格式:DOC 页数:12 大小:115.34KB
返回 下载 相关 举报
基于Android贪吃蛇游戏开发.doc_第1页
第1页 / 共12页
基于Android贪吃蛇游戏开发.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《基于Android贪吃蛇游戏开发.doc》由会员分享,可在线阅读,更多相关《基于Android贪吃蛇游戏开发.doc(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、毕 业 设 计(论 文)开 题 报 告一、结合毕业设计(论文)课题情况,根据所查阅的文献资料,每人撰写不低于1000字的开题报告。5. 研究的背景和意义 目前随着移动设备越来越普及以及移动设备的硬件的提升,移动设备的功能越来越完善,android系统平台也日渐火热起来。目前为止国内已经有很多Android系统的用户。截止2013年Android系统的国内市场占有率已经过75%,在西欧以及北美智能手机市场占有率也在80%左右。可见Android系统正处于发展的顶峰。手机游戏作为Android系统平台的一个重要组成部分,正在被越来越多的人所重视。全球在使用的移动电话已经超过59亿部,而且这个数字每

2、天都在不断增加。手机游戏潜在的市场比其他任何平台都要大。6. 研究的目标制作出一款可以在案桌平台上完美运行的贪吃蛇游戏,学习Java程序设计基本技术,学习用android开发Java程序的相关技术,熟悉游戏“贪吃蛇”的需求,熟悉项目开发的完整过程。学会怎样进行一个项目的需求分析、概要设计、详细设计等软件开发过程,熟练地掌握Java程序设计的基本技术和方法,熟练地掌握android环境的使用方法,培养初步的项目分析能力和程序设计能力。二、本课题要研究或解决的问题和拟采用的研究手段(途径):1、研究的问题:1游戏动画中的碰撞检测问题2.基于Android游戏动画的实现7. 研究手段:自行学习。翻阅

3、相关的书籍和资料,进行详细的灯饰行业市场调查,了解该行业的产品种类和相应企业情况。参考其他电子商务类系统,根据实际业务需求进行各个功能的设计开发,最终完成系统开发。三、指导教师意见:8. 对“开题报告”的评语: 2对学生前期工作情况的评价(包括确定的研究方法、手段是否合理等方面):指导教师: 年 月 日基于Android贪吃蛇游戏开发摘要本课题是利用java语言在Android平台上进行手机游戏的开发,由于本人知识的有限,以及客观条件的限制,本人打算开发一个单机版的游戏。本人在手机上玩过贪吃蛇的游戏,曾经为了和别人比赛,苦苦的玩了好多次,追求高分!后来得知这个小小的游戏是nokia当年很成功的

4、一款手机游戏,许多人都玩过,也很喜欢。现在这款游戏的版本已经发展到第三版了,手机生产厂商继续开发这个游戏,看来这个游戏还是有很大的市场的。在游戏产业高速发展的今天,游戏的设计思想和理念也在不断变化。而随着智能手机终端的出现,更是为手机游戏提供了高速发展的平台。本章将对Android游戏的发展现状和前景进行分析,并介绍本文的研究内容和结构安排。关键词 :android 游戏 发展 平台一.引言近年来智能手机的迅猛发展,国内手机系统的开发平台已经将 Android放在最受关注的中心位置,目前我国单机版手游仍占手机游戏的上峰,在市场价额中网络游戏占有率较低,所以通过整体的行业分析统计来看,中国的手机

5、游戏所处于高速发展时期。二.研究现状 通过网络调查分析,截止到2011年三月份,我国手游市场的发展规模为9亿多拥有1.42亿的手游用户数量,可见它的增长速度之快。究其原因我认为主要有以下几方面:智能手机的销量大輻提高,手游终端体验者使用率成上尹趋势,手游市场的重视主要有电信运营商和各大游戏开发厂商,提高手机游戏的市场推广率,使得我国手机游戏用户数据明暴提高此稚断,安卓开发游戏的市场前景非常乐观,游戏市场同样需要质量稍高的游戏品,保证不种类的多元化的游戏产品,比如:网上体闲游戏、社交类游戏软件、动漫类游戏软件等等,我针对课题的研究开发,对游戏引擎的理解、游戏业务逻辑分析目设计实现等都有指导性作用

6、,更对今后的 Android游戏开发起到定的帮助性。随着手机已经慢慢的成为我们每个人的主要消费品,智能手机在许多方面都为用户提供消费体验,比如:上网、视频、娱乐、学习、输入/输出设备等,通过前几年的调査统计,手杋业岀現快速增长趋势。历年调査数据来看,2年智能手杋的岀售量的增长率是3%,智能手机的渗透率为40%。相对个人电脑来看,个人电脑的使用已进入成熟阶段,未来的个人电脑业整体增高速度计划保持在05%上下。因此,对于近年来增长速度极快的手相业来说,未来具年的手机将有替代个人电脑的势头。智能手机操作系统中的 Android系统已经具有非常大的优势, Android采用基于nus的自由开放源代码的

7、操作系统,主要用于便携设备,比如:平板、手机等等,通过统计调查来看, Android在2011年三月份的全球市场中第“次超越了塞班系统,成为全球第的排名三、系统的可行性研究目前我国手机市场上最常用的操作系统有: Windows mobile, symbian,以及谷歌的Android操作系统,其中 Android系统在开发源代码优势上的发展前景很乐系,因此我选择了基于 Android的手机贪食蛇游戏。3.1 经济上的可行性谷歌公司经过多年历练投资上达数亿美元开发的智能手机系统就是 Android系统它是基于 Linux的内核的操作系统,并于2007年11月5日发布。伴随基于安卓的智能手机终端设

8、备的生产以及各大终端系统的诞生,安卓系统得到了各大厂商及用户的认可,在手机系统这个平台上成为了公认的焦点。对于基于开放的系统,无论是企业还是个人都能用来表达自己的创意及想法。3.2 技术上的可行性谷歌公司研制开发的 Android开放手机联盟,翻译成英文为“ Open HandsetAlliance”,它采用软件叠层( software stack)架构,主要分为三部分,底层 Linux内核只提供基本功能:其他的应用软件则由各公司自行开发,部分程序以Java编写3.3操作上的可行性基于 Android的手机贪食蛇游戏采用 Android框架结构,通过 eclipse来安装长缪目默技东学眠dro

9、id相关的插件,在 Android终端使用 Android模擻器,模器可以完全实现手机的功能,达到熟悉系统的目的综上所述,基于 Android的手粗贪食蛇戏在开发上是可有的,元论是技术连是经济乃至于操作上,因此,我选择本系统作为毕设订的课题来研究。3.4 本章小结本章详细探究了游戏的需求分析,完成了游戏的内容设计、美工需求和功能需求三个方面的内容。四、需求设计软件生存周期中的重要环节是需求分析,这也在软件开发中起到至关重要的作用,软件的需求分析是将软件开发逐步细化,将所有计划中确定的功能落实到详细设计中,需求分析也是软件设计的一个基础,如果在此环节出现错误,解决起来需要的时间会比到设计编码时少

10、上几倍,所以在大型系统开发中,需求分析显得相当重要,系统的开发人员会对用户提出的需求及现实的环境进行详细调査了解。4.1 软件目标本系统是基于 Android的手机贪食蛇游戏系统,系统实现达到以下目标本系统实现面友好、操作方便灵活、体现个性化操作、达到人机交互模式。实现贪食蛇游戏的基本操作系统实现维护性和可操作性。4.2 功能需求功能雷求主要为程庠员定义系统完成的基本软件功能,开发人员可以通过功能需求文档了解系统的业务雷求,帮助开发人员切实准确的完成任务。对于基于 Android的手机贪食蛇游戏的输入、接受等功能进行详细的分析调研,总结得出用户需求信息。4.3 系统界面需求基于 android

11、的手粗贪食蛇諱戏的面要求有局合理、能清晰、颜色搭配美观、实现统一的元素标准及主题慧想,可以充分的反应游戏核心技术。界五、系统的总体设计 public SnakeView(Context context, AttributeSet attrs) super(context, attrs);Bitmap map = BitmapFactory.decodeResource(getResources(), R.drawable.redstar);cellHeight=map.getHeight();cellWidth=map.getWidth();/ TODO Auto-generated cons

12、tructor stub public void start(Handler handler) this.handler=handler; drawWall(); initSnake(); initApple(); isRunning=true; direction=2; sumApples=0; new Mytread().start(); /* * 设置snake对应单元格的图片 */ public void drawSnake() this.setCell(snake.get(0).getX(), snake.get(0).getY(), R.drawable.redstar); for

13、(int i=1;isnake.size();i+) this.setCell(snake.get(i).getX(), snake.get(i).getY(), R.drawable.greenstar); /* * 更新蛇的坐标 */ public void updateSnake() boolean eatApple=false; Point p = new Point(0,0);/蛇的头新结点 switch(direction) case 1: p.setX(snake.get(0).getX()-1); p.setY(snake.get(0).getY(); break; case

14、2: p.setX(snake.get(0).getX()+1); p.setY(snake.get(0).getY(); break; case 3: p.setX(snake.get(0).getX(); p.setY(snake.get(0).getY()-1); break; case 4: p.setX(snake.get(0).getX(); p.setY(snake.get(0).getY()+1); break; /判断新的点有没有苹果 for(Point point : apples) if(point.getX()=p.getX()&point.getY()=p.getY(

15、) sumApples+; apples.remove(point); int x=(int)(Math.random()*(rowNum-2)+1;/行数 int y=(int)(Math.random()*(colNum-2)+1;/列数 apples.add(new Point(x,y); this.setCell(x, y, R.drawable.yellowstar); eatApple=true; break; /判断是否撞墙 if(p.getX()=0|p.getX()=rowNum-1|p.getY()=0|p.getY()=colNum-1) isRunning=false;

16、 Message message = new Message(); message.obj=您撞墙了!; handler.sendMessage(message); snake.add(0, p); this.setCell(snake.get(snake.size()-1).getX(),snake.get(snake.size()-1).getY() , 0); if(eatApple=false) snake.remove(snake.size()-1); /* * 初始化苹果 */ public void initApple() for(Point p:apples) setCell(

17、p.getX(), p.getY(), 0); apples.clear(); for(int i=0;i2;i+) int x=(int)(Math.random()*(rowNum-2)+1;/行数 int y=(int)(Math.random()*(colNum-2)+1;/列数 apples.add(new Point(x,y); this.setCell(x, y, R.drawable.yellowstar); /* * 初始化蛇 */public void initSnake()for(int i=1;isnake.size();i+)setCell(snake.get(i).

18、getX(), snake.get(i).getY(), 0);snake.clear();snake.add(new Point(5,2);snake.add(new Point(4,2);snake.add(new Point(3,2);snake.add(new Point(2,2);this.setCell(snake.get(0).getX(), snake.get(0).getY(), R.drawable.redstar);for(int i=1;isnake.size();i+)this.setCell(snake.get(i).getX(), snake.get(i).get

19、Y(), R.drawable.greenstar); public void drawWall() for(int i=0;icolNum;i+) this.setCell(0, i, R.drawable.greenstar); this.setCell(rowNum-1, i, R.drawable.greenstar); for(int i=0;irowNum;i+) this.setCell(i, 0, R.drawable.greenstar); this.setCell(i, colNum-1, R.drawable.greenstar); Overrideprotected v

20、oid onDraw(Canvas canvas) / TODO Auto-generated method stubPaint paint = new Paint();for(int i=0;irowNum;i+)for(int j=0;j0)paint.setTextSize(50);canvas.drawText(String.valueOf(sumApples),width/2 ,height/2 , paint);super.onDraw(canvas);Overridepublic boolean onTouchEvent(MotionEvent event) / TODO Aut

21、o-generated method stubint x = (int) event.getX();int y = (int) event.getY();if(direction=2 | direction=1)int headX=snake.get(0).getY()*cellWidth;if(xheadX)direction=4;elsedirection=3;elseint headY = snake.get(0).getX()*cellHeight;if(yheadY)direction=1;elsedirection=2;/* * Point p = new Point(x, y);

22、 points.add(p); this.invalidate(); */return super.onTouchEvent(event);Overrideprotected void onSizeChanged(int w, int h, int oldw, int oldh) / TODO Auto-generated method stubwidth = w;height = h;rowNum = h/cellHeight;colNum = w/cellWidth;cells=new introwNumcolNum;super.onSizeChanged(w, h, oldw, oldh

23、);/* * 设置单元格的值 */public void setCell(int x,int y,int value)cellsxy=value; 六、结语毕业设计悄然结束,回味过程让我从起初的茫然,到逐渐理清思路进入状态,整个过程无法用言语形容。面对困难时,我常常觉得无从下手,困难解决了,立刻感到豁然开朗,这一切的一切都离不开我的指导老师选题结東后,通过到图书馆、阅览室、书店等地方查找资料以及上网搜集相关信息,这些精确、完整的资料信息对设计的撰写起到一定作用,通过对资料的分类、理论、实际、例了、图片等内容的整理,列出提纲与指导老师进行沟通。通过这个毕业设计,使我对 android系统的开发有一个更好的了解,在实际操作中我针对ava里的 android应用系统开发有了更深入的研究和学习,为以后工作和学习积累了宝贵的经验。以上是我在本次毕业设计中的过程与体会,当然我知道我作的还是不够的,在以后的日子中,我还要再提高我的实际操作能力。- 12 -

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

当前位置:首页 > 应用文书 > 毕业论文 > 农业相关

本站为文档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