安卓游戏毕业设计论文Word文档格式.docx
《安卓游戏毕业设计论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《安卓游戏毕业设计论文Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
![安卓游戏毕业设计论文Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/25/5fb0053e-10ba-49ac-882a-979a013e48ee/5fb0053e-10ba-49ac-882a-979a013e48ee1.gif)
AbstractII
1前言1
1.1游戏的目的与意义1
1.2Android游戏的发展趋势1
1.3系统调研1
1.3.1社会可行性分析1
1.3.2技术可行性分析2
1.3.3经济可行性分析2
2Android开发工具及系统特点3
2.1开发工具3
2.2系统特点3
3游戏总体设计5
3.1游戏模块划分5
3.2游戏设计逻辑6
3.2.1天气影响因素6
3.2.2声誉影响因素6
4游戏设计8
4.1游戏需求分析8
4.1.1对功能的规定8
4.1.2对性能的规定8
4.2游戏数据分析8
4.2.1游戏固定数据存储格式8
4.2.2玩家进货价格生成9
4.2.3商品腐败值计算方法10
4.2.4商店声誉计算方法10
4.2.5顾客购买率计算方法11
5游戏具体设计与实现12
5.1游戏各Activity功能12
5.1.1开始Activity12
5.1.2选择Activity12
5.1.3准备Activity12
5.1.4游戏进行Activity13
5.2游戏中动画原理实现13
5.2.1图片的加载13
5.2.2顾客的走动和购买的实现13
5.2.3下雨、下雪的背景实现14
6游戏实现及效果15
结论17
参考文献18
致谢19
1前言
1.1游戏的目的与意义
现如今,电子游戏已慢慢渗透进人们生活中,并在扮演着越来越重的角色。
可以说,随着它的迅猛发展,现今的电子游戏已经不仅仅是一种娱乐,而是形成了一种文化现象。
本游戏的制作属于电子游戏中的经营类游戏。
经营类游戏即是你在虚拟世界中开一家店铺,以把店铺经营好,使店铺在金钱和等级上达标。
简单的经营类游戏可以使玩家体验到娱乐与消遣。
但当游戏更加靠近现实,把现实中开店所遇到的各种有利因素、不利因素都添加进去之后,经营游戏可以算是一种对现实的模拟。
1.2Android游戏的发展趋势
随着社会的发展,人们的工作压力与日俱增。
与此同时相应的减压放松的方式也慢慢发生了变化。
人们更趋于在家或者工作闲余时间以电子游戏的方式达到娱乐的目的。
一次,也就意味着,电子游戏的利润空间和发展空间是十分宽广的。
而作为现代人不可或缺,随身携带的手机设备,则作为一类游戏的载体,有着广泛的发展空间。
而Android作为主流智能手机系统之一,研究和开发相应应用游戏是时代发展的趋势。
现如今Android的市场份额占总体智能手机市场份额的50%以上,相对于前几年来说,其发展势头势不可挡。
以至于越来越多的开发商加入了Android应用开发的行列。
在2010年,Android市场份额仅占4.7%左右,并其市场只有不到20000个应用程序。
但在2011年初,这个数字就已经超过了25万字大关。
而随着越来越多的应用的诞生,由于其的多元化和普遍性越来越高,其发展趋势已开始渐渐逼近世界智能手机龙头苹果公司推出的ios系统。
而在多个Android的应用程序排行榜中,无论是按照使用量或者人气,或者收入,70%以上的应用排行榜榜首都是游戏。
可见,Android游戏应用已渐渐深入人心。
Android手机游戏应用开发已渐渐占据市场主流。
1.3系统调研
1.3.1社会可行性分析
随着手机的发展与普及,以及互联网技术的扩展,人们对移动通讯的需求必将需要实现多元功能化。
通过移动通讯连接到Internet上,实现数据,应用等资源共享。
提高了数据的资源利用,并能及时的到更新。
在这样的外界环境之下,手机娱乐应用的推广得到保证。
1.3.2技术可行性分析
Android系统平台是一个基于Linux开源的手机操作系统。
它由Google公司在2007年11月5日正式发布的。
Android平台是由操作系统、中间件、界面和应用软件组成。
是第一个要为移动终端创造的一款真正开放的完整的操作系统。
[1]
说道Android操作系统平台的优势,不得不提到最突出的两个特点“免费”和“开源”。
免费:
Android免费提供其操作系统,让移动过电话制造商可以免费搭载Android操作系统,使得手机的制作成本大大降低,渐渐使得Android普及。
开源:
Android手机制作操作系统代码的开放性,不仅让开发者可以在统一开放平台进行程序开发,而且可以解决现今市场不同智能机之间因文件格式不同造成的信息交流不便、程序内容无法移植等问题;
并且Android的开机源码就意味着手机使用者不必在被动地接受移动电话制造商默认的设施和环境,使用者完全可以根据自己的想法自定义手机的配置。
1.3.3经济可行性分析
作为现金炙手可热的Android手机游戏,由于其拥有大量玩家的基础,因此开发商络绎不绝,对其投资的广告商也源源不断。
2Android开发工具及系统特点
2.1开发工具
Eclipse是一个市场占有率很高的JavaIDE工具,Android推荐使用Eclipse来开发Android应用,并为其提供了专门的插件:
AndroidDevelopmentTools(ADT)。
2.2系统特点
Android的底层建立在Linux系统之上,它采用一种软件叠层的方式进行构建。
这种软件层结构使得层与层之间互相分离,分工明确。
保证了层与层之间的低耦合,当下层的层下或者层内发生改变时,上层应用程序无须做任何改变。
([1]Android疯狂讲义)
Android系统主要由5部分组成:
●应用程序层
●应用程序框架
●函数库
●Android运行时
●Linux内核
……
图2.1
如图2.1所示:
应用程序层为系统的核心应用程序,如电子邮件客户端、地图、浏览器等。
这些程序主要都是Java编写,玩家主要通过这些应用程序来实现对手机的操作。
应用程序框架提供了大量API供开发者使用。
开发者自己开发的应用的功能模块,主要遵守了框架的约定,那么其他应用程序也能使用这个功能模块。
函数库包含了一套被不同组件所使用的C/C++库的集合。
一般来说,Android开发者不能直接调用这套C/C++库集,但可以通过它上面的应用程序框架来调用此库。
Android操作系统运行时由2个部分组成:
Android核心库和Dalvik虚拟机。
其中Android核心库主要为Java语言提供了大部分的功能,而虚拟机则负责运行Android应用程序。
[2]
Linux内核系统基于Linux2.6之上搭建的。
在Android平台上Linux内核提供了安全性、内存管理、进程管理、网络协议栈和驱动模型等核心系统服务。
并且linux也是硬件层与软件层之间的抽象层。
3游戏总体设计
3.1游戏模块划分
本游戏主要分为4个部分:
游戏开始,选择游戏难度,玩家进货、定价,游戏主画面,游戏结束。
游戏具体的流程图如图3.1所示:
图3.1
玩家进入游戏,首先看到开始界面,选择开始,游戏进入游戏天数选择界面。
游戏根据玩家选择的天数,令玩家运行冷饮店相应的天数。
当玩家选择出游戏天数之后,进入进货,定价的管理界面。
在此界面玩家可以看到“冷饮店”主要出售2种货物:
甜甜圈和冷饮。
甜甜圈需要玩家自己定义配方和出售价格,然后选择每种配料进货多少。
冷饮需要玩家选择出需要进货数量和确定出售价格。
当全部设置完毕,玩家选择“开始”按钮,进入游戏主逻辑。
在游戏主逻辑中,玩家可以根据购买顾客反应情况,来调整售价。
并在不需要操作的情况下,选择加快速度,令游戏速度加快,避免不必要的时间浪费。
游戏主逻辑计算一天从早上6点到晚上18点。
当游戏进行到18点的时候,主逻辑画面会自动跳转到游戏进货、定价界面中去,玩家进行下一天的进货设置。
最后,当游戏运行天数与玩家选择天数相同时,跳出提示框,通知玩家在固定天数内赚的钱数,并提示游戏结束,选择是否重新开始或者退出程序。
3.2游戏设计逻辑
“经营冷饮店”这款游戏的主要设计逻辑是基于为了更真实的模拟出在各种因素综合作用影响的情况下,玩家是否能在时间和初始金额固定的情况下,令一家“冷饮店”得到最大的利润。
游戏中为了增加游戏的复杂性和难度,增加了天气,商店声誉,玩家自定义售价和甜甜圈配料选择等因素来影响顾客购买情况。
3.2.1天气影响因素
游戏中天气会随机发生变化,一共有四种天气:
晴天,雨天,雪天和阴天。
顾客会随着天气的变化而改变购买需求。
当天气为晴天,会有较多的顾客会购买商品,并且购买冷饮的顾客会多于购买甜甜圈的顾客。
当天气为雨天,购买商品的顾客数量会大幅度减少,购买甜甜圈和冷饮的顾客基本比率为1:
1。
当天气为雪天或者阴天,购买商品顾客数量普通,但是雪天购买甜甜圈的顾客大幅度增多,阴天购买2种商品数量基本一致。
每一件商品都具有一定的腐败值,这个数值顾客是看不到的,但当商品腐败值到达一定程度,就会提示顾客,并把这部分商品的数量从库存里面去除。
天气情况会严重影响商品的腐败值。
晴天商品腐败严重,当天没有售完的商品第二天都会腐败;
雨天和阴天商品腐败值为晴天的一半,雪天商品腐败值为晴天的三分之一。
而当当天商品没有卖完,进入第二天销售时,则首先出售的是玩家新进货的商品,全部出售完毕才会出售之前没买完的商品。
玩家在进货期间,物价会在一定范围内波动。
而这个范围会随着天气的变化而改变,晴天、阴天物价普通,雨天、雪天由于交通不便,物价较高。
并且随着游戏时间的推移,物价范围会缓慢上升。
3.2.2声誉影响因素
声誉是一家“冷饮店”是否盈利的非常重要的一个影响因素。
每天“冷饮店”客流量基本相同,天气会影响一部分顾客是否愿意购买商店内商品。
声誉是另一个会影响顾客是否购买商品的因素。
当商店声誉分为6个阶段,10%以下、10%到20%、20%到40%、40%到60%、60%到80%与80%以上。
每个阶段顾客购买率都不一样,例如:
晴天,商店声誉10%,那么将有10%*(1+10%)的顾客会购买商品。
由此可见,商店声誉的重要性。
而决定商店声誉主要为顾客购买商品前和购买商品后是否满意。
每个顾客购买商品之前会判断商品价格是否合理,如果商品价格过高,则顾客会觉得太贵不予购买,并且对“冷饮店”的声誉会有一定的负面影响。
当顾客购买完商品,会根据商品的质量与价格评判。
如果商品质量差和价格也较高,则对“冷饮店”声誉影响不好。
如果商品的质量与价格都是一般,可以接受,则商店声誉不受。
如果商品性价比较高时,“冷饮店”的声誉则会有正面的影响。
4游戏设计
4.1游戏需求分析
4.1.1对功能的规定
本游戏做开发的是基于Android的“经营冷饮店”游戏软件,主要实现玩家可以在自己选定的时间内,经营一家“冷饮店”,并获得自己的最终利润。
“经营冷饮店”这款游戏需要实现主要功能如下:
(1)游戏框架设计;
(2)游戏中各个Activity之间实现数据传输;
(3)顾客类的设计与实现
(4)甜甜圈类的设计与实现
(5)背景类的设计与实现
(6)冷饮类的设计与实现
(7)游戏主逻辑的实现
(8)天气类的设计与实现
(9)游戏的开始和退出功能实现
4.1.2对性能的规定
本游戏在设计上本着方便、使用及娱乐性高的宗旨,在对界面进行设计过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错的有点。
由于是手机游戏,对游戏的性能要求更加严格,内存的占有量也必须有一定的限制。
游戏的主界面应该力求美观,赏心悦目。
游戏触摸控制模块应做到易懂、易操作,准确率高,不易出错。
4.2游戏数据分析
4.2.1游戏固定数据存储格式
由于本游戏程序中需要存储的数据量较小,所以本游戏中数据通过Android中的SharedPreferences来存储。
SharedPreferences主要通过key-value来保存数据。
SharedPreferences的数据总是保存在/data/data<
packagename>
shared_prefs目录下面。
SharedPreferences总是以XML格式保存。
XML格式文件是一个只有一个根节点的树状存储格式的文件。
相对于对一般文件的查找,XML的查找速度显然更快。
表4.1为游戏中SharedPreferences中数据key-value的值:
表4.1key-value对照表
数据名
key-value值
初值
玩家选择天数
dateNum
(1)
现在第几天
NowdateNum
1
总资金
sum_money
1000
甜甜圈售价
donut_money
糖(库存)
sugar_num
面粉(库存)
flour_num
配料(库存)
other_num
糖(食谱)
sugar_cook_num
面粉(食谱)
flour_cook_num
配料(食谱)
other_cook_num
天气
weather
(2)
声誉
reputation
饮料数量
drinking_num
饮料定价
drinking_value
当前已售甜甜圈
sold_donut
当前已售饮料
sold_drink
表4.1中
(1)处玩家选择天数初值需要在玩家选择时赋值;
(2)中天气的初值是游戏每次随机产生的。
4.2.2玩家进货价格生成
在玩家进货、定价管理界面,系统会随机产生不同商品的当前进货物价,每种商品物价范围基本一致,其前三天价格初始化都是1到6之间,但随着时间的推移,物价的波动会略微上调。
其计算方法如下:
首先生成一个1—6的随机价格money,判断天数如果是3天后,那么
money=money+money*(nowDays/Days)(4.1)
其中,nowDays为当前天数,Days为玩家选择的总天数。
4.2.3商品腐败值计算方法
商品的腐败值,每隔一天计算一次,封装在donuts类和soft_drink类里。
每过一天,商品腐败值会根据前一天天气状况来进行计算。
如果前一天天气是晴天,则腐败值donut_decay或者drink_decay增加100。
如果前一天天气下雨或者阴天,则腐败值donut_decay或者drink_decay增加50。
如果前一天天气为雪天,则腐败值donut_decay或者drink_decay增加30。
而当腐败值大于等于100的商品,则从库存里面删除。
4.2.4商店声誉计算方法
影响商店声誉的主要是商品价格,当商品为甜甜圈的时候,商品配料也同样影响商品的声誉。
在生成顾客Person类的初始化中,每个顾客类都会根据当天天气状况,随机生成需要购买的商品。
之后,随机生成最优商品价格和可以忍受的最贵商品价格。
如果商品时甜甜圈,则还需要随机生成最优配料数和可以忍受的最低配料数。
在这里,配料数是指玩家在开始售货之前设定的食谱中糖、面粉和配料数的总和。
随机生成的商品最优价格和可以忍受的最贵商品价格是在一定范围内生成的,而这个范围是根据当前第几天来设定的。
各种数据生成的计算公式如下:
首先随机生成数n,数n的范围在8—15之间。
其次,计算商品配料数m:
m=sugar+flour+other(4.2)
公式(4.2)中sugar代表食谱中的糖,flour代表食谱中的面粉,other代表食谱中的配料。
(1)饮料的最优价格计算公式:
drinkminMoney=n+n*(nowDays/Days)(4.3)
(2)饮料的可以忍受最贵价格计算公式:
drinkmaxMoney=drinkminMoney*1.5(4.4)
(3)甜甜圈最优价格计算公式:
donutminMoney=n*m+n*(nowDays/Days)(4.5)
公式(4.5)中,因为甜甜圈是3种材料综合生成,所以计算价格需要n*m。
(4)甜甜圈可以忍受最贵价格计算公式:
donutmaxMoney=donutminMoney*1.5(4.6)
规定生成甜甜圈最佳配料数为13—25,生成甜甜圈最低配料数为5—12之间。
则当此顾客准备购买饮料时,需要先判断用户定价是否低于顾客预期可忍受的最贵价格。
如果价格不能忍受,则商店声誉度reputation=reputation–1,并且顾客放弃购买此商品。
若低于顾客预期可忍受的最贵价格,则判断是否低于或等于顾客预期的最优价格,如果低于或等于最优价格,则reputation=reputation+1。
若顾客购买甜甜圈,则分5中情况讨论:
1)难吃:
商品价格在顾客预期最优价格之内,但是甜甜圈配料数低于最低配料数。
此时,声誉减1。
2)生气:
商品价格在顾客可以忍受价格之间,并且甜甜圈配料数低于最低配料数,此时声誉减2。
3)太贵:
顾客购买前,判断商品在其预期价格可以忍受价格之上,则顾客放弃购买,声誉减1。
4)高兴:
商品价格在顾客预期最优价格之内,并且商品配料在顾客预期最佳配料之上,则商店声誉加1。
5)普通:
不属于以上情况的即普通,商店声誉不改变。
4.2.5顾客购买率计算方法
顾客购买率主要根据商店声誉来计算的。
每天生成的顾客数量基本一致,约为360人左右。
声誉最大值为100,最小值为0。
当声誉小于10时,10%的顾客会购买商品。
当声誉大于等于10小于20时,20%的顾客会购买商品。
当声誉大于等于20小于40时,30%的顾客会购买商品。
当声誉大于等于40小于60时,40%的顾客会购买商品。
当声誉大于等于60小于80时,50%的顾客会购买商品。
当声誉大于等于80时,60%的顾客会购买商品。
5游戏具体设计与实现
5.1游戏各Activity功能
Android应用最重要、最常见的组成单元为Activity。
Activity对于Android相当于Servlet对于Web应用的作用。
Activity可以看做一个画面,当建立一个新的Activity的时候,其实相当于建立一个全新的画面,这个画面有自己的生存周期,统一由ActivityManager进行管理。
Activity的管理方式类似于栈,最先启动的Activity最后关闭,最后启动的Activity最先关闭。
5.1.1开始Activity
开始Activity类名为Start_Activity,其布局在布局文件中加载,有一个按钮,点击进入新Activity——选择Activity。
在开始Activity中,背景音乐开启,一直持续到游戏结束。
音乐大小用户可以用手机自带的音量调节键调节。
5.1.2选择Activity
选择Activity类名为Choose_Activity,由布局文件夹Layout下布局的xml文件进行布局。
主要功能为用户选