完整版)安卓游戏毕业设计论文4035323_第1页
完整版)安卓游戏毕业设计论文4035323_第2页
完整版)安卓游戏毕业设计论文4035323_第3页
完整版)安卓游戏毕业设计论文4035323_第4页
完整版)安卓游戏毕业设计论文4035323_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,要知识不仅是指课本的内容 , 还包括社会经验、 文明文化、 时代精神等整体要素 , 才有竞 争力, 知识是新时代的资本 , 五六十年代人靠勤劳可以成事;今天的香港要抢知识以知识取胜大 连 民 族 学 院 本 科 毕 业 设 计(论 文)基于安卓的 经营冷饮店 游戏设计摘要随着社会与科技的发展 人们越来越注重移动、便携与方便 而随着这股潮流的发展 手机应用游戏应运而生 安卓系统作为一个市场占有超过50%的手机平台其应用游戏的发展非常迅猛本论文提出一款基于安卓系统的 经营冷饮店 游戏设计 并对其具体开发与实现进行了剖析 在游戏制作过程中 实现了用户与手机之间的良好的人机交互 使用户更好的参与到游

2、戏中去此款游戏为模拟经营类游戏 其内容主要包含 游戏开始 选择游戏难度 玩家进货、定价 游戏主画面 游戏结束 这 5 个模块 主要介绍了每个模块的功能 设计方法 模块和模块之间的逻辑结构和数据处理 本论文主要对此款游戏的总体设计 需求分析和内部数据的具体处理和计算进行了详细的阐述并对游戏的具体设计与实现进行了简要的说明 在一定安卓理论的基础上介绍了部分关键代码与关键函数的应用 对游戏中应用到的相关计算机图形学实现应用动画的过程做了具体介绍最后展示成果截图并对其进行简单介绍然后论文进行整体总结与归纳关键词:游戏;安卓;人机交互The Subject of Undergraduate Gradua

3、tion Project (Thesis) of DLNUAbstractWith the development of society and technologygrowing emphasis as a market share over 50% of the mobile phone systemthe application of Android(1)现在第几天NowdateNum1总资金sum_money1000甜甜圈售价donut_money0糖(库存)面粉(库存) flour_num 0 配料(库存) other_num 0 糖(食谱) sugar_cook_num 1 面粉(

4、食谱) flour_cook_num 1 配料(食谱) other_cook_num 1 天气 weather(2) 声誉 reputation 0 饮料数量 drinking_num02)中天气的初值(4.1)饮料定价 drinking_value 0 当前已售甜甜圈 sold_donut 0 当前已售饮料 sold_drink 0表 4.1 中( 1)处玩家选择天数初值需要在玩家选择时赋值; 是游戏每次随机产生的4.2.2 玩家进货价格生成在玩家进货、定价管理界面 系统会随机产生不同商品的当前进货物价 每种商品物价范围基本一致 其前三天价格初始化都是 1到 6 之间 但随着时间的推移 物价

5、的波动会略微上调其计算方法如下: 首先生成一个 1-6 的随机价格 money 判断天数如果是 3 天后 那么money = money + money * ( nowDays Days )其中 nowDays 为当前天数Days 为玩家选择的总天数4.2.3 商品腐败值计算方法商品的腐败值 每隔一天计算一次 封装在 donuts 类和 soft_drink 类里 每过一天 商品腐败值会根据前一天天气状况来进行计算如果前一天天气是晴天则腐败值 donut_decay 或者 drink_decay 增加 100 如果前一天天气下雨或者阴天则腐败值 donut_decay 或者 drink_dec

6、ay 增加 50 如果前一天天气为雪天则腐败值 donut_decay 或者 drink_decay 增加 30 而当腐败值大于等于 100 的商品 则从库存里面删除4.2.4 商店声誉计算方法 影响商店声誉的主要是商品价格 当商品为甜甜圈的时候 商品配料也同样影响商品的声誉在生成顾客 Person 类的初始化中 每个顾客类都会根据当天天气状况 随机生成需要购买的商品 之后 随机生成最优商品价格和可以忍受的最贵商品价格如果商品时甜甜圈 则还需要随机生成最优配料数和可以忍受的最低配料数在这里配料数是指玩家在开始售货之前设定的食谱中糖、面粉和配料数的总和 随机生成的商品最优价格和可以忍受的最贵商品

7、价格是在一定范围内生成的 而这个范围是根据当前第几天来设定的各种数据生成的计算公式如下:首先随机生成数 n数 n 的范围在 8-15 之间其次计算商品配料数 m:m = sugar + flour + other公式( 4.2 )中 sugar 代表食谱中的糖flour 代表食谱中的面粉other 代表食谱中的配料(1)饮料的最优价格计算公式:drinkminMoney = n + n * ( nowDays(4.3)(2)饮料的可以忍受最贵价格计算公式: drinkmaxMoney = drinkminMoney(4.4)(3)甜甜圈最优价格计算公式:donutminMoney = n *

8、m+ n * ( nowDays Days ) 公式( 4.5 )中4.2 )Days )* 1.54.5 )因为甜甜圈是 3 种材料综合生成所以计算价格需要 n*m(4) 甜甜圈可以忍受最贵价格计算公式:1.5donutmaxMoney = donutminMoney(4.6)规定生成甜甜圈最佳配料数为 13-25生成甜甜圈最低配料数为 5-12 之间则当此顾客准备购买饮料时 需要先判断用户定价是否低于顾客预期可忍受的最贵价格 如果价格不能忍受则商店声誉度 reputation = reputation - 1 并且顾客放弃购买此商品 若低于顾客预期可忍受的最贵价格 则判断是否低于或等于顾客

9、预期的最优价格 如果低于或等于最优价格 则 reputation = reputation + 1若顾客购买甜甜圈则分 5 中情况讨论:1) 难吃:商品价格在顾客预期最优价格之内 但是甜甜圈配料数低于最低配料数 此时 声誉减 12) 生气:商品价格在顾客可以忍受价格之间 并且甜甜圈配料数低于最低配料数 此时声誉减 23) 太贵:顾客购买前判断商品在其预期价格可以忍受价格之上则顾客放弃购买声誉减 14) 高兴:商品价格在顾客预期最优价格之内 并且商品配料在顾客预期最佳配料之上则商店声誉加 15) 普通:不属于以上情况的即普通 商店声誉不改变4.2.5 顾客购买率计算方法顾客购买率主要根据商店声誉

10、来计算的每天生成的顾客数量基本一致约为 360 人左右声誉最大值为 100最小值为 0当声誉小于 10 时10%的顾客会购买商品当声誉大于等于 10 小于 20 时20%的顾客会购买商品当声誉大于等于 20 小于 40 时30%的顾客会购买商品当声誉大于等于 40 小于 60 时40%的顾客会购买商品当声誉大于等于 60 小于 80 时50%的顾客会购买商品当声誉大于等于 80 时60%的顾客会购买商品5 游戏具体设计与实现5.1 游戏各 Activity 功能Android 应用最重要、最常见的组成单元为 ActivityActivity 对于An droid相当于 Servlet 对于 W

11、eb应用的作用Activity 可以看做一个画面当建立一个新的 Activity 的时候其实相当于建立一个全新的画面 这个画面有自己的生存周期统一由 ActivityManager 进行管理Activity 的管理方式类似于栈最先启动的 Activity最后关闭最后启动的 Activity最先关闭5.1.1 开始 Activity开始 Activity 类名为 Start_Activity其布局在布局文件中加载有一个按钮点击进入新 Activity-选择 Activity在开始 Activity 中背景音乐开启一直持续到游戏结束音乐大小用户可以用手机自带的音量调节键调节5.1.2 选择 Act

12、ivity选择 Activity 类名为 Choose_Activity由布局文件夹 Layout 下布局的 xml 文件进行布局 主要功能为用户选择开店游戏天数SharedPreferences 也在此 Activity 中进行初始化 并存储在其中数据也在此处进行初始化5.1.3 准备 Activity准备 Activity 的类名为 preActivity 此类主要是用户进货、定价操作界面 本类中也使用布局文件夹 Layout 下布局的 xml 文件进行布局 在类里添加监听器和处理此类运用 Android 中 TabHost 进行分页设置 把一个 Activity 分成两部分 一部分为甜甜

13、圈 一部分为冷饮在甜甜圈和冷饮部分上方都可看到当前资本与游戏当天天数和开业后天气情况 用户可以选择需要进货的商品选择完毕之后选择开业按钮即可 如果选择错误想要重新选择 则可以点击重置按钮 则游戏会重置到之前没有选择时的状态甜甜圈和冷饮部分数据分别为甜甜圈类 Donuts 和冷饮类 Soft_drink 分类暂存数 据 当用户选择 开业 按钮时 则之前用户选择的数据会提交到 SharedPreferences 的存储文件中去 使得数据不会丢失5.1.4 游戏进行 Activity游戏进行 Activity 的类名为 GamingActivity此类可以说是整个游戏的最重要部分此 Activity

14、 主要加载了一个 SurfaceView 的类 整个绘画背景天气顾客购买的动画和部分用户操作都封装在继承了 SurfaceView 的 GamingSurfaceView 中SurfaceView 是 Android 中 View 类的子类View 是一个超类 几乎包含了所有屏幕类型 每个 View 类都有一个绘画的画布SurfaceView 主要用于刷新较频繁的动画、游戏绘图 它是一个新起的单独线程 而 View 则必须在 UI 主线程中更新画面在 GamingSurfaceView 中首先建立一个线程以定时刷新画面在刷新过程中每次调用 Draw 方法和 logic 方法在 Draw 方法中

15、处理画图 从背景开、建筑物、商店到顾客购买 时间等顾客和背景的画图是把画笔和画笔当做参数传到 Person 类和 Background 类中 在这两个类中分别都设置 draw 方法和 logic 方法 这样使得画图的分工更加明确逻辑性更强在这个类中 用户主要会观察顾客购买情况 为了增加用户的互动性 用户可以随时调整甜甜圈和饮料的出售价格 同时用户可以点击调整速度按钮 控制游戏速度的快慢 以便于观察游戏中顾客的购买情况或者免于浪费更多的时间5.2 游戏中动画原理实现5.2.1 图片的加载Android 中位图的渲染和操作主要是基于 Bitmap 的图形类来进行An droid支持的图片格式有pn

16、 g、jpg、bmp等其中尤以 png 格式 的图片更加方便 可以通过修改图片调整图片的透明度Android 的图片加载主要通过画布类 Canvas 来进行的Canvas 有一系列的方法可以进行绘制图片 本游戏中图片都是通过 Canvas.drawBitmap ()方法进行绘制的 当图片过大或者过小时Canvas 提供了一个缩放位图的函数 对指定大小的矩形在画布指定位置上进行缩放 但在操作前后需要加入 save ()和 restore ()两个方法 分别用于保存当前画布状态和恢复上次保存画布的状态5.2.2 顾客的走动和购买的实现 顾客走动图片是一张包含顾客向右走动的所有动作帧每帧的大小相同

17、顾客不同动作之间间距相同且除了顾客本身以外 其他部分都为透明的 png 格式图片该图片如图 5.1 所示:图 5.1首先参数 m_walkCurrentFrame 记录顾客当前走路是哪一帧 顺序应该为 0、1、2、1、 0、2、1、0、 2然后获得图片的宽 width 则小人其中一帧的宽即为 framew = width 3再用 Canvas 方法 scale ()函数修改顾客的大小并用 Canvas 方法 clipRect ()设置一个宽高跟小人相同大小的可视区域 画图的时候按照设置的可视区域画则顾客的另外 2 帧的图片部分就被屏蔽了 然后用 drawBitmap 方法进行绘制其中注意要根据

18、当前 m_walkCurrentFrame 是多少来绘制 例如当 m_walkCurrentFrame 为 1 的时候 即要显示中间那帧不能直接使用需要显示图片的 xy 坐标 要使中间的图片的左上角坐标为 x y则要从 x- framewy 处开始绘制这样由于之前已经剪切了一个可视区域 则图片横坐标 x- framew 到 x 处图片是看不到的 x+framew 到 x+framew*2 是看不到的5 帧动作帧图片同理 顾客购买物品的时候也是使用了一个包含顾客购买动作的 在此不再介绍5.2.3 下雨、下雪的背景实现下雨背景的实现 相当于滚动背景的实现 模拟雨水的图片为一张 png 的用白色画笔

19、画出长短不一线段 其他地方都是透明的图片然后生成 2 个 Bitmap 对象 图片都加载雨水的图片第一张图片随着时间推移向下移动 5 个单位 第二张图片在屏幕正上方紧接着第一张 每次也移动 5 个单位 当任意一张图片移动到屏幕之外 把该张图片位置放到屏幕正上方 继续向下移动 5 个单位下雪背景的与下雨背景的实现基本相同 仅仅是图片不同 在此不作具体描述6 游戏实现及效果如图 6.1 为游戏开始界面点击图中 开始游戏按钮 进入选择游戏天数界面图 6.1如图 6.2 所示为用户选择天气界面其中有 5 个选项可供选择用户可按照自己意愿选择游戏天数点击按钮后进入游戏准备界面图 6.2如图 6.3 与图

20、 6.4 所示在游戏准备界面中用户可以选择冷饮或者甜甜圈选项卡 在甜甜圈和冷饮选项卡中 用户可以根据第二天天气情况决定进货数量和食谱想要增加数量点击+ 按钮即可如果用户想要重新选择则选择 重置 按钮则可恢复当前界面中的选择到原始状态最后点击 开业 按钮进入游戏主逻辑画面图 6.3图 6.4如图 6.5 所示 为游戏主逻辑画面图 6.5结论经过几个月时间终于完成了 Android 系统的 经营冷饮店 游戏的设计与实现经过多次测试运行效果良好基本能满足用户聊天和休闲娱乐的需求在设计与实现此款游戏过程中设计游戏内容熟悉 Android 平台开发令我话费较多时间和精力在开始编码程序前期设计整体游戏框架

21、结构给每个模块明确分工以面向对象的思想分析和解决问题的过程令我的编程思想有了较大的提升在编码程序中期根据所准备的需求进行具体编写代码和功能实现遇到了较多的问题例如 Dialog 的监听包和 view 的监听包不能同时导入只能导入其中一个那么在这个 Activity 里面需要同时监听这两种不同组件的解决方法; 由于 Activity是栈式管理先打开的 Activity 最后关闭那么如果在任意一个 Activity 中随意的关闭整个程序等等手机内存空间有限 这就要求程序员进行优化处理自身程序 在构建顾客对象过程中 每天一般需要刷新 360 个顾客对象如果在初期直接创建 360 个对象用户等待时间会相当长并且非常耗费内存资源一般手机负荷不了因此在创建顾客对象时分别创建了 2 组对象每组 10 人当第一组最后一个顾客从左侧走入屏幕后第二组紧接着第一组最后一名顾客向右走当第一组最后一名从屏幕右侧走出屏幕 重新初始化第一组对象数据 等待第二组最后一名对象从左走入屏幕 第一组

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论