完整版安卓游戏毕业设计论文1464349.docx

上传人:b****2 文档编号:1625980 上传时间:2023-05-01 格式:DOCX 页数:20 大小:22.42KB
下载 相关 举报
完整版安卓游戏毕业设计论文1464349.docx_第1页
第1页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第2页
第2页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第3页
第3页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第4页
第4页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第5页
第5页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第6页
第6页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第7页
第7页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第8页
第8页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第9页
第9页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第10页
第10页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第11页
第11页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第12页
第12页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第13页
第13页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第14页
第14页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第15页
第15页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第16页
第16页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第17页
第17页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第18页
第18页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第19页
第19页 / 共20页
完整版安卓游戏毕业设计论文1464349.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

完整版安卓游戏毕业设计论文1464349.docx

《完整版安卓游戏毕业设计论文1464349.docx》由会员分享,可在线阅读,更多相关《完整版安卓游戏毕业设计论文1464349.docx(20页珍藏版)》请在冰点文库上搜索。

完整版安卓游戏毕业设计论文1464349.docx

完整版安卓游戏毕业设计论文1464349

知识不仅是指课本的内容,还包括社会经验、文明文化、时代精神等整体要素,才有竞争力,知识是新时代的资本,五六十年代人靠勤劳可以成事;今天的香港要抢知识,要以知识取胜

大连民族学院本科毕业设计(论文)

 

基于安卓的"经营冷饮店"游戏设计

 

 

摘要

  随着社会与科技的发展

人们越来越注重移动、便携与方便

而随着这股潮流的发展

手机应用游戏应运而生

安卓系统作为一个市场占有超过50%的手机平台

其应用游戏的发展非常迅猛

  本论文提出一款基于安卓系统的"经营冷饮店"游戏设计

并对其具体开发与实现进行了剖析

在游戏制作过程中

实现了用户与手机之间的良好的人机交互

使用户更好的参与到游戏中去

  此款游戏为模拟经营类游戏

其内容主要包含"游戏开始"

"选择游戏难度"

"玩家进货、定价"

"游戏主画面"

"游戏结束"这5个模块

主要介绍了每个模块的功能

设计方法

模块和模块之间的逻辑结构和数据处理

  本论文主要对此款游戏的总体设计

需求分析和内部数据的具体处理和计算进行了详细的阐述

并对游戏的具体设计与实现进行了简要的说明

在一定安卓理论的基础上

介绍了部分关键代码与关键函数的应用

对游戏中应用到的相关计算机图形学实现应用动画的过程做了具体介绍

  最后展示成果截图并对其进行简单介绍

然后论文进行整体总结与归纳

  

关键词:

游戏;安卓;人机交互

TheSubjectofUndergraduateGraduationProject(Thesis)ofDLNU

Abstract

  Withthedevelopmentofsocietyandtechnology

growingemphasisasamarketshareover50%ofthemobilephonesystem

theapplicationofAndroid

(1)

现在第几天

NowdateNum

1

总资金

sum_money

1000

甜甜圈售价

donut_money

0

糖(库存)

sugar_num

0

面粉(库存)

flour_num

0

配料(库存)

other_num

0

糖(食谱)

sugar_cook_num

1

面粉(食谱)

flour_cook_num

1

配料(食谱)

other_cook_num

1

天气

weather

(2)

声誉

reputation

0

饮料数量

drinking_num

0

饮料定价

drinking_value

0

当前已售甜甜圈

sold_donut

0

当前已售饮料

sold_drink

0

  表4.1中

(1)处玩家选择天数初值需要在玩家选择时赋值;

(2)中天气的初值是游戏每次随机产生的

4.2.2玩家进货价格生成

  在玩家进货、定价管理界面

系统会随机产生不同商品的当前进货物价

每种商品物价范围基本一致

其前三天价格初始化都是1到6之间

但随着时间的推移

物价的波动会略微上调

  其计算方法如下:

  首先生成一个1-6的随机价格money

判断天数如果是3天后

那么

       money=money+money*(nowDaysDays)(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*(nowDaysDays)(4.3)

  

(2)饮料的可以忍受最贵价格计算公式:

         drinkmaxMoney=drinkminMoney*1.5(4.4)

  (3)甜甜圈最优价格计算公式:

donutminMoney=n*m+n*(nowDaysDays)(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文件进行布局

主要功能为用户选择开店游戏天数

  SharedPreferences也在此Activity中进行初始化

并存储在其中数据也在此处进行初始化

5.1.3准备Activity

  准备Activity的类名为preActivity

此类主要是用户进货、定价操作界面

本类中也使用布局文件夹Layout下布局的xml文件进行布局

在类里添加监听器和处理

  此类运用Android中TabHost进行分页设置

把一个Activity分成两部分

一部分为甜甜圈

一部分为冷饮

  在甜甜圈和冷饮部分上方都可看到当前资本与游戏当天天数和开业后天气情况

  用户可以选择需要进货的商品

选择完毕之后选择开业按钮即可

如果选择错误想要重新选择

则可以点击重置按钮

则游戏会重置到之前没有选择时的状态

  甜甜圈和冷饮部分数据分别为甜甜圈类Donuts和冷饮类Soft_drink分类暂存数据

当用户选择"开业"按钮时

则之前用户选择的数据会提交到SharedPreferences的存储文件中去

使得数据不会丢失

5.1.4游戏进行Activity

  游戏进行Activity的类名为GamingActivity

此类可以说是整个游戏的最重要部分

此Activity主要加载了一个SurfaceView的类

整个绘画背景

天气

顾客购买的动画和部分用户操作都封装在继承了SurfaceView的GamingSurfaceView中

  SurfaceView是Android中View类的子类

View是一个超类

几乎包含了所有屏幕类型

每个View类都有一个绘画的画布

SurfaceView主要用于刷新较频繁的动画、游戏绘图

它是一个新起的单独线程

而View则必须在UI主线程中更新画面

  在GamingSurfaceView中

首先建立一个线程

以定时刷新画面

在刷新过程中

每次调用Draw方法和logic方法

在Draw方法中处理画图

从背景开、建筑物、商店到顾客购买

时间等

  顾客和背景的画图是把画笔和画笔当做参数传到Person类和Background类中

在这两个类中分别都设置draw方法和logic方法

这样使得画图的分工更加明确

逻辑性更强

  在这个类中

用户主要会观察顾客购买情况

为了增加用户的互动性

用户可以随时调整甜甜圈和饮料的出售价格

同时用户可以点击调整速度按钮

控制游戏速度的快慢

以便于观察游戏中顾客的购买情况或者免于浪费更多的时间

5.2游戏中动画原理实现

5.2.1图片的加载

  Android中位图的渲染和操作主要是基于Bitmap的图形类来进行

Android支持的图片格式有png、jpg、bmp等

  其中尤以png格式的图片更加方便

可以通过修改图片调整图片的透明度

  Android的图片加载主要通过画布类Canvas来进行的

Canvas有一系列的方法可以进行绘制图片

  本游戏中图片都是通过Canvas.drawBitmap()方法进行绘制的

  当图片过大或者过小时

Canvas提供了一个缩放位图的函数

对指定大小的矩形在画布指定位置上进行缩放

但在操作前后需要加入save()和restore()两个方法

分别用于保存当前画布状态和恢复上次保存画布的状态

5.2.2顾客的走动和购买的实现

  顾客走动图片

是一张包含顾客向右走动的所有动作帧

每帧的大小相同

顾客不同动作之间间距相同

且除了顾客本身以外

其他部分都为透明的png格式图片

  该图片如图5.1所示:

         

图5.1

  首先参数m_walkCurrentFrame记录顾客当前走路是哪一帧

顺序应该为0、1、2、1、0、2、1、0、2......

  然后获得图片的宽width

则小人其中一帧的宽即为framew=width3

  再用Canvas方法scale()函数修改顾客的大小

并用Canvas方法clipRect()设置一个宽高跟小人相同大小的可视区域

画图的时候按照设置的可视区域画

则顾客的另外2帧的图片部分就被屏蔽了

  然后用drawBitmap方法进行绘制

其中注意

要根据当前m_walkCurrentFrame是多少来绘制

  例如当m_walkCurrentFrame为1的时候

即要显示中间那帧

不能直接使用需要显示图片的x

y坐标

要使中间的图片的左上角坐标为x

y

则要从x-framew

y处开始绘制

  这样由于之前已经剪切了一个可视区域

则图片横坐标x-framew到x处图片是看不到的

x+framew到x+framew*2是看不到的

  同理

顾客购买物品的时候也是使用了一个包含顾客购买动作的5帧动作帧图片

在此不再介绍

5.2.3下雨、下雪的背景实现

  下雨背景的实现

相当于滚动背景的实现

模拟雨水的图片为一张png的用白色画笔画出长短不一线段

其他地方都是透明的图片

  然后生成2个Bitmap对象

图片都加载雨水的图片

  第一张图片随着时间推移向下移动5个单位

第二张图片在屏幕正上方紧接着第一张

每次也移动5个单位

当任意一张图片移动到屏幕之外

把该张图片位置放到屏幕正上方

继续向下移动5个单位

  下雪背景的与下雨背景的实现基本相同

仅仅是图片不同

在此不作具体描述

6游戏实现及效果

  如图6.1为游戏开始界面

点击图中"开始游戏按钮"进入选择游戏天数界面

图6.1

  如图6.2所示为用户选择天气界面

其中有5个选项可供选择

用户可按照自己意愿选择游戏天数

  点击按钮后进入游戏准备界面

图6.2

  如图6.3与图6.4所示

在游戏准备界面中

用户可以选择冷饮或者甜甜圈选项卡

在甜甜圈和冷饮选项卡中

用户可以根据第二天天气情况决定进货数量和食谱

  想要增加数量

点击"+"按钮即可

  如果用户想要重新选择

则选择"重置"按钮

则可恢复当前界面中的选择到原始状态

  最后点击"开业"按钮

进入游戏主逻辑画面

图6.3

图6.4

  如图6.5所示

为游戏主逻辑画面

        

图6.5

结论

  经过几个月时间终于完成了Android系统的"经营冷饮店"游戏的设计与实现

经过多次测试

运行效果良好

基本能满足用户聊天和休闲娱乐的需求

  在设计与实现此款游戏过程中

设计游戏内容

熟悉Android平台开发令我话费较多时间和精力

  在开始编码程序前期

设计整体游戏框架结构

给每个模块明确分工

以面向对象的思想分析和解决问题的过程令我的编程思想有了较大的提升

  在编码程序中期

根据所准备的需求进行具体编写代码和功能实现

遇到了较多的问题

例如Dialog的监听包和view的监听包不能同时导入

只能导入其中一个

那么在这个Activity里面需要同时监听这两种不同组件的解决方法;由于Activity是栈式管理

先打开的Activity最后关闭

那么如果在任意一个Activity中随意的关闭整个程序等等

手机内存空间有限

这就要求程序员进行优化处理自身程序

在构建顾客对象过程中

每天一般需要刷新360个顾客对象

如果在初期直接创建360个对象

用户等待时间会相当长

并且非常耗费内存资源

一般手机负荷不了

因此

在创建顾客对象时

分别创建了2组对象

每组10人

当第一组最后一个顾客从左侧走入屏幕后

第二组紧接着第一组最后一名顾客向右走

当第一组最后一名从屏幕右侧走出屏幕

重新初始化第一组对象数据

等待第二组最后一名对象从左走入屏幕

第一组第一名紧跟着第二组最后一名走入屏幕

  在编码后期

主要工作为测试

修改简单的bug和调整游戏中数据的不平衡

使游戏不会太简单又或者太难

  在游戏设计过程中

用户的交互体验

视觉效果都是游戏中的重中之重

游戏中数据逻辑的设计难易程度也是一款游戏的关键之处

经过多次测试

本款Android平台下的"经营冷饮店"游戏基本能够满足用户的休闲娱乐需求

参考文献

[1]李华明.Android游戏编程之从零开始.北京:

清华大学出版社

2011.

[2]李刚.疯狂Android讲义.北京:

电子工业出版社

2011

[3]杨丰盛.Android技术内幕:

系统卷.北京:

机械工业出版社

2011

[4]梅尔(RetoMeier)、王超.Android2高级编程(第2版).北京:

清华大学出版社

[5]王克宏著.Java技术教程(基础篇).北京:

高等教育出版社

2002.04

[6]邓凡平.深入理解Android(卷1).北京:

机械工业出版社

[7]李佐彬等.Android开发入门与实战体验.北京:

机械工业出版社

[8]韩超、梁泉.Android系统原理及开发要点详解.北京:

电子工业出版社

[9]EricJ.Braucle.软件设计-从程序设计到体系结构.李仁发等译.北京:

电子工业出版社

2007

[10]赵毅主编.跨平台程序设计语言--Java.西安:

西安电子科技大学出版社

2006

?

?

?

?

?

?

?

?

大连理工大学毕业设计(论文)格式规范

大连民族学院本科毕业设计(论文)题目

-II-

-I-

基于安卓的"经营冷饮店"游戏设计

-IV-

大连理工大学毕业设计(论文)格式规范

基于安卓的"经营冷饮店"游戏设计

2

-17-

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

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2