PHP网页游戏学习之Xnova(ogame)源码解读(十四)


Posted in PHP onJune 26, 2014

十七、资源更新(PlanetResourceUpdate.php页面)

前面基本把重要的功能讲解完了,这章节我们分析重要的一个函数PlanetResourceUpdate,主要功能是更新资源、制造船舰和防御单位;代码很有条理,下面是详细的说明:

1.计算星球的最大存储空间,包括系统设置的浮动值
2.计算星球三种资源的产量和能量消耗总量,包括专家的加成
3.如果星球是月球,以上计算的产量和能量直接为0
4.计算上次更新资源到现在的时间
5.计算由于能量比率而引起的产量变化,能量为0的时候,只有基本产量
6.接下来要判断是否假期了,不是假期的话,根据前面准备好的数据,计算出这段时间内的产量,并加到现有的资源里面
7.取得这段时间应该完成的船舰和防御数量,函数HandleElementBuildingQueue
8.构造SQL语句,提交给服务器,资源更新完成

这个函数在玩家每次点击每个功能的时候执行,给玩家的感觉好像资源是早计算好了一样,呵呵。不过在一些版本里面,当一个玩家长期不登录的时候,这个玩家的资源也就不能更新了;这个时候,需要处理这个玩家的资源更新,具体更新方法可以随便,我使用的是每次间谍探测时更新。

下面讲解下函数HandleElementBuildingQueue,逻辑不复杂,还是很容易理解的。
这里要记住: b_hangar_id是要建造的字符串,b_hangar是上次保持的建造时间

说明下:

1.先判断是否有建造队列
2.取得经过的时间并加上保持的时间
3.解析建造队列,保存在数组里面备用
4.下面foreach就是一个一个的建造了
5.最后如果有未造完的保持起来下次建造,并返回

PHP 相关文章推荐
PHP新手上路(八)
Oct 09 PHP
APMServ使用说明
Oct 23 PHP
php批量缩放图片的代码[ini参数控制]
Feb 11 PHP
基于PHP编程注意事项的小结
Apr 27 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
Jun 25 PHP
php读取csv实现csv文件下载功能
Dec 18 PHP
浅谈ThinkPHP的URL重写
Nov 25 PHP
phpcms中的评论样式修改方法
Oct 21 PHP
php事务回滚简单实现方法示例
Mar 28 PHP
PHP实现数据库的增删查改功能及完整代码
Apr 18 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 PHP
php实现快速对二维数组某一列进行组装的方法小结
Dec 04 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 #PHP
ThinkPHP模板自定义标签使用方法
Jun 26 #PHP
ThinkPHP调用百度翻译类实现在线翻译
Jun 26 #PHP
使用ThinkPHP+Uploadify实现图片上传功能
Jun 26 #PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
Jun 26 #PHP
ThinkPHP实现将本地文件打包成zip下载
Jun 26 #PHP
ThinkPHP实现一键清除缓存方法
Jun 26 #PHP
You might like
flash用php连接数据库的代码
2011/04/21 PHP
PHP 读取和编写 XML
2014/11/19 PHP
php文件下载处理方法分析
2015/04/22 PHP
php使用Jpgraph绘制柱形图的方法
2015/06/10 PHP
php生成mysql的数据字典
2016/07/07 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
PHP多进程编程实例详解
2017/07/19 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
FireFox下XML对象转化成字符串的解决方法
2011/12/09 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
微信小程序实现人脸检测功能
2018/05/25 Javascript
Vue中props的使用详解
2018/06/15 Javascript
Vue项目引进ElementUI组件的方法
2018/11/11 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
2019/04/29 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
关于JS模块化的知识点分享
2019/10/16 Javascript
vue实现lodop打印功能的示例
2020/11/11 Javascript
详解Python中DOM方法的动态性
2015/04/11 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
Python爬虫小技巧之伪造随机的User-Agent
2018/09/13 Python
10分钟用python搭建一个超好用的CMDB系统
2019/07/17 Python
CSS3中Animation动画属性用法详解
2016/07/04 HTML / CSS
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
领导干部作风建设自查报告
2014/10/23 职场文书
销售经理岗位职责
2015/01/31 职场文书
西岭雪山导游词
2015/02/06 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
文明上网主题班会
2015/08/14 职场文书
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android