完整版基于Android操作系统的足球小将手机游戏毕业论文.docx
- 文档编号:24866165
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:41
- 大小:334.79KB
完整版基于Android操作系统的足球小将手机游戏毕业论文.docx
《完整版基于Android操作系统的足球小将手机游戏毕业论文.docx》由会员分享,可在线阅读,更多相关《完整版基于Android操作系统的足球小将手机游戏毕业论文.docx(41页珍藏版)》请在冰豆网上搜索。
完整版基于Android操作系统的足球小将手机游戏毕业论文
石家庄科技信息职业学院
毕业论文
题目:
基于Android操作系统的足球小将手机游戏
姓名:
孙艳征
专业班级:
软件技术(游戏方向)09-24班
指导教师:
刘永伟
摘要:
近年来,随着经济的日益发展,人们的生活水平不断提高,生活质量也在渐渐的改善。
适当的游戏对人们的业余生活是不可必缺的。
说到游戏,种类有好多种。
在电脑游戏上的分类也很多。
RCG(赛车游戏)、FTG(格斗游戏)、SPG(体育游戏)、RPG(角色扮演)、ACT(动作游戏)、AVG(冒险游戏)、PUZ(益智游戏)等等。
虽说繁多的游戏种类让人目不暇接,游戏的可玩性、可延续性和可对比性是益智类游戏深受各年龄阶层玩家欢迎的原因。
当今网络发展迅速,益智类游戏被广泛运用到网络各大平台上。
借鉴网络各大平台上的益智游戏,我利用java、AndroidAPI语言开发了本游戏项目。
我通过Eclipse、AndroidSDK利用Java语言编写的《足球小将》,在游戏中控制自己的球员击球、进门,达到一定分数获得胜利。
关键字:
足球小将;道具;声音;分数;关卡
ABSTRACT:
Inrecentyears,growingastheeconomy,improvingpeople'slivingstandardandqualityoflifehasalsograduallyimproved.Appropriategamesonpeople’ssparetimearenotlackofwill.Therearesomanykindofgame.Alsotheclassificationofthecomputergames.SuchasRCG(racinggame),FTG(FightingGame),SPG(sportsgames),RPG(roleplaying),ACT(actiongame),AVG(adventuregame),PUZ(PuzzleGames)andsoon.Althoughtherearetoomanykindsfortheeyetotakein.continuityandcomparabilityisapopularpuzzlegameplayerofallageswelcomereason.Therapiddevelopmentsoftoday’snetworks,puzzlegamesarewidelyappliedtovariousnetworkplatforms.IuseJava,AndroidtheAPIlanguagedevelopmentofthegameproject.IthroughEclipseAndroidSDKJavalanguagepreparedbythe"football",inthegame,playerscontroltheirownhitthedoor,reachingcertainscoresvictory.
Keywords:
FootballSoccer;Prop;sound;scores;levels
目录
一、前言……………………………………………………………………3
二、相关研究综述…………………………………………………………5
三、研究的目标、内容与意义……………………………………………6
3.1研究目标…………………………………………………………6
3.2研究主要内容……………………………………………………6
3.2研究的意义………………………………………………………6
四、Android程序设计相关技术概论……………………………………..8
4.1XML界面布局………………………………………………….9
4.2Android的Activity组件………………………………………9
4.3SQLite数据库………………………………………………….9
4.4Android2D图形编程…………………………………………9
五、游戏研究的重点、算法与思路………………………………………10
5.1游戏研究的重点……………………………………………10
5.2游戏研究的算法……………………………………………16
5.3游戏界面………………………………........………………20
5.4游戏的思路…………………………………………………26
六、论文总结……………………………………………………………28
参考文献……………………………………………………………………30
致谢………………………………………………………………………...31
附录一(游戏截图)…………………………………………………............32
前言
现在,游戏的类型也由最初的动作游戏和简单益智游戏向更复杂、更高智力,更具真实性的游戏发展。
目前的游戏种类繁多,包括角色扮演、仿真模拟类、人工智能、休闲类、渲染类、网络类等等,甚至有的游戏包含了好几种类型。
足球小将游戏一直以来都很多。
但仿真模拟类的游戏却有不少,现在休闲类的技术广泛的应用到很多游戏里面等等。
最广泛应用的应该就是交换排列检测。
随着技术的不断提高,玩家对游戏真实性的要求也不断提高。
相信益智类游戏的技术,以后会更加深入各种游戏之中。
鉴于游戏的对社会的巨大影响力和光辉的发展前景,以及我们自己对游戏爱好,这次的毕业设计我们决定尝试设计和制作一个具有一定可玩性的游戏。
期间,我们收集相关资料、研究同类型的游戏、阅读有关这类型游戏和相关技术性的书籍,通过制作游戏项目来熟悉游戏的制作思路、过程,加深对面向对象编程语言的掌握,培养自己的耐心、细心和考虑问题的全面性,同时解决本课题要完成的问题,如游戏框架如何构建,如何将DirectX的内容封装,如何完善游戏的各种功能,如何能让游戏有音乐和音效的实现,如何能让游戏过关,如何能让游戏界面美观,看起来舒服感觉。
二、相关研究综述
近年来,国内外的专家学者以及一线的开发人员从理论、方法、技术等不同的角度对Android手机操作系统进行了一定的研究。
本小节将从Android手机操作系统的发展历程、研究现状、程序开发设计简介四个方面分析总结国内外的相关研究结果。
今天我们来聊一聊Android系统的历史,首先我们就要先来说说Android系统这个名字的来历。
Android这一次最先出现在法国作家利尔亚当在1886年发飙的科幻小说《未来夏娃》中,作者将外表像人类的机器起名为Android,这也就是Android小人名字的由来。
知道了Android名字的来历我们再来看一下Android系统的来历。
Android系统一开始并不是由谷歌研发出来了,Android系统原来的公司名字就叫做Android,谷歌公司在2005收购了这个仅成立22月的高科技企业。
Android系统也开始由谷歌接手研发,Android系统的负责人以及Android公司的CEO安迪·鲁宾成为谷歌公司的工程部副总裁,继续负责Android项目的研发工作。
在2007年11月5日这天,谷歌公司正式向外接展示了这款名为Android的操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成。
这一联盟将支持谷歌发布的手机操作系统以及应用软件,将共同开发Android系统的开放源代码。
三、研究的目标、内容与意义
3.1研究目标
本项目主要研究的目标分为:
程序设计思想实践改进目标、Android平台手机开发技术的研究目标。
(1)运用面向对象的编程思想统一过程,对Chess足球小将手机游戏的系统结构、过程、功能等要素进行可视化的描述,为Android程序设计的可视化提供方法、技术上的支持,为系统的理论模型和软件建模提供参照。
(2)本系统中使用了多种基于Android平台的软件开发技术,根据要实现的系统功能,系统需要使用到的技术及技术研究的目标主要有:
手机游戏用户界面的人性化、个性化界面布局,给用户以良好的游戏体验;
移动设备上的图形编程,提供流畅靓丽的游戏过程界面;
3.2研究主要内容
项目研究的内容主要有以下二大块:
第一部分是手机游戏的界面设计和背景音效的设计。
和PC上的游戏开发有些许不同,手机游戏更加的注重用户体验,一个人性化的、时尚靓丽的游戏界面和优美个性化的音效设计是一个成功的手机游戏要达到的基本要求。
第二部分是对局智能程序的设计。
可以和设计好的AI(ArtificialIntelligence)算法进行游戏。
人工智能程序设计是一项对算法要求很高的程序设计,特别是在手机这种硬件资源紧缺的环境中,更是需要一个高效的算法来提供强大的AI对局支持
3.3研究的意义
游戏制作的目的是满足了人们休闲的需要,在紧张工作之余益智类的小游戏能够给人带来最大程度的放松,也可以增进人们之间的交流,沟通,通过游戏还可以认识更多的朋友,也可以到达跨省、跨市,甚至跨国间人们互相娱乐的目的。
而消消看游戏学会锻炼眼力,时间利用快速、连续的移动,在十行十列限制区内,交换相对一致球移动。
消消看除了掌握正确的动作和遵循一般的规律以外,还应学会一些特殊的变化。
变节奏和变位置的,以避免加分被对手赢了。
应掌握多种方式的移动球,做到能里能外,而且学会多获取随机出现增加的新球。
足球小将游戏是一个比较经典的游戏,根据软件工程有关的规范,以合理的开发原则,设计出消消看游戏,并给人们的生活带来唯美的艺术享受和健康愉快的补充。
游戏软件是一种与文化背景密切联系的产品,具有很强的民族性和丰富的文化内涵。
伴随着游戏软件在市场上的销售,与其相关的文化也随之传播。
因此发展我国自主的益智、健康的游戏软件已是当务之急。
游戏是一种基于计算机的应用软件,是新型的休闲娱乐方式。
当前开发的游戏软件应该做到知识性、娱乐性、趣味性、教育性相统一。
通过此次课题的设计,掌握制作一个游戏软件的方法,以及制作游戏软件的整个流程,制作游戏软件的步骤,为以后的就业工作打下基础。
四、Android程序设计相关技术概论
Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。
根据Android的软件框图,其软件层次结构自下而上分为以下几个层次:
图4.1Android系统架构
4.1XML界面布局
XML是一种基于XML的语言,因此需要对XML(特别是XML名称空间)很熟悉。
XML是英文“XMLUserInterfaceLanguage”的首字母缩写。
顾名思义,它是一种应用XML来描述使用者界面的标示语言。
4.2Android的Activity组件
Activity,一般代表手机屏幕的一屏,相当于浏览器的一个页面。
在Activity中添加view,实现应用界面和用户交互。
一个应用程序一般由多个Activity构成,这些Activity之间可互相跳转,可进行页面间的数据传递。
每个Activity都有自己的生命周期。
4.3SQLite数据库
在Android平台上,集成了一个嵌入式关系型数据库—SQLite。
SQLite是支持结构化查询的轻量级数据库,能很好得适应于移动设备的应用。
Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。
4.4Android2D图形编程
1、SimpleGraphicsinView:
就是直接使用Android已经实现的一些画图操作,比如说images,shapes,colors,pre-definedanimation等等。
这种方式只能画静态或者极为简单的2D图画,对于实时性很强的动画,高品质的游戏都是没法实现的。
2、Canvas:
首先我们要明白这个Canvas是一个2D的概念,是在Skia中定义的。
也就是说在这个方式下还是说的画2D图形。
五、游戏研究重点、算法与思路
5.1游戏研究的重点
1.1如何拼接用一张整图不现实,这样会影响程序的执行效率,而且很占空间
只有通过图块的拼接。
1.2装载地图将地图索引写进文件,在程序装载的时候,通过输入输出流来读
地图内容。
2、游戏按键在游戏中通过手触或者使用左右键使球员左右移动,通过判断击球的角度来确定足球运行的方向和速度,当你有事需要处理时,你可以点击两个比分中间的标志,来暂停住游戏的运行。
3、关卡关卡地图的设置:
不同的关卡,对手的移动速度是不同的
4、帮助信息
(1)让自己的队员击中球
(2)抓住时间打中道具,让你有更大的赢面。
(3)控制左右键来使球员移动。
5.2游戏研究的算法
(1)后台电脑判断左右移动
publicclassAIThreadextendsThread{
GameViewfather;//视图类引用
booleanflag;//循环控制变量
intsleepSpan=30;//睡眠时间
//构造器,初始化成员变量
publicAIThread(GameViewfather){
this.father=father;
flag=true;//设置线程标志位
}
//线程启动后的执行方法
publicvoidrun(){
while(flag){
intd=father.ball.direction;//获取足球运动方向
if(d>0&&d<8){//如果足球方向偏左
father.aiDirection=4;//AI运动方向改为向左
}
elseif(d>8&&d<15){//如果足球方向偏右
father.aiDirection=12;//AI运动方向改为向右
}
try{
Thread.sleep(sleepSpan);//休眠一段时间
}
catch(Exceptione){
e.printStackTrace();//打印并捕获异常
}
}
}
}
(2)碰撞测试(足球与边框)
publicvoidcheckForBorders(){
intd=direction;
//左右是不是出边界了
if(x<=father.fieldLeft){
//撞了左边界
if(d>8&&d<16&&d!
=12){//如果不是正撞到左边界
if(Math.random() direction=16-direction; } else{//一定概率随机变向 direction=(direction>12? 1: 5)+(int)(Math.random()*100)%3; } } elseif(d==12){//如果是正撞到左边界 if(Math.random()<0.4){//注意这个概率要小,因为正撞上去希望随机变向的概率大一些 direction=4; } else{ direction=(Math.random()>0.5? 3: 5); } } } elseif(x>father.fieldRight){ //撞到右边界 if(d>0&&d<8&&d! =4){ if(Math.random() direction=16-direction; } else{//一定几率随机变向 direction=(direction>4? 9: 13)+(int)(Math.random()*100)%3; } } elseif(d==4){//如果是正撞到右边界 if(Math.random()<0.4){ direction=12; } else{ direction=(Math.random()>0.5? 11: 13); } } } d=direction; //判断是否撞到上边界 if(y //不是正撞 if(d>0&&d<4||d>12&&d<16){ if(Math.random() direction=(d>12? 24: 8)-d; } else{//一定几率随机变向 direction=(d>12? 9: 5)+(int)(Math.random()*100)%3; } } elseif(d==0){//正撞到上边界 if(Math.random()<0.4){//一定几率沿正确反射路线返回 direction=8; } else{ direction=(Math.random()<0.5? 7: 9);//一定几率随机变向 } } } //判断是否撞到下边界 elseif(y>father.fieldDown){ //不是正撞 if(d>4&&d<12&&d! =8){ if(Math.random() direction=(d>8? 24: 8)-d; } else{//随机变向 direction=(d>8? 13: 1)+(int)(Math.random()*100)%3; } } elseif(d==8){//正撞到下边界 if(Math.random()<0.4){//正常变向 direction=0; } else{//随机变向 direction=(Math.random()>0.5? 1: 15); } } } } /* *此方法检测是否碰到AI运动员,如果碰到,则调用handleCollision方法处理碰撞, *同时播放声音设置足球新速率和设置lastKicker */ publicvoidcheckForAIPlayers(){ intr=(this.ballSize+father.playerSize)/2; for(Playerp: father.alAIPlayer){ if((p.x-this.x)*(p.x-this.x)+(p.y-this.y)*(p.y-this.y)<=r*r){//发生碰撞 handleCollision(this,p);//处理碰撞 if(father.father.wantSound&&father.father.mpKick! =null){//播放声音 try{//用try/catch语句包装 father.father.mpKick.start(); }catch(Exceptione){} } velocity=p.power; lastKicker=8;//记录最后一脚是谁踢的 } } } /* *此方法检测是否碰到了玩家的足球运动员, */ publicvoidcheckForUserPlayers(){ intr=(this.ballSize+father.playerSize)/2; for(Playerp: father.alMyPlayer){ if((p.x-this.x)*(p.x-this.x)+(p.y-this.y)*(p.y-this.y)<=r*r){//发生碰撞 handleCollision(this,p);//处理碰撞 if(father.father.wantSound&&father.father.mpKick! =null){//播放声音 try{ father.father.mpKick.start(); }catch(Exceptione){} } velocity=p.power;//被赋予新速度 lastKicker=0;//记录最后一脚谁踢的 } } } /* *此方法处理足球和运动员之间的碰撞,AI和玩家的处理方式是一样的, *首先查看Player对象的movingDirection,再综合Player对象的 *attackDirection,确定方向范围,类似直角坐标系中的4个象限, *然后在方向范围中随机产生一个,这样产生的方向有惯性在里面,看着 *比较真实。 需要注意的是如果足球和运动员碰撞时运动员静止不动, *那么可选的方向就是1或15(进攻方向朝上)、7或9(进攻方行朝下) */ publicvoidhandleCollision(Ballball,Playerp){ switch(p.movingDirection){ case12: //移动方向向左 if(p.attackDirection==0){//攻击方向向上 ball.direction=13+(int)(Math.random()*100)%3;//取13,14,15中一个 } else{//攻击方向向下 ball.direction=9+(int)(Math.random()*100)%3;//取9,10,11中一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 基于 Android 操作系统 足球 小将 手机 游戏 毕业论文
![提示](https://static.bdocx.com/images/bang_tan.gif)