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
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
php array_walk() 数组函数
Jul 12 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
Sep 23 PHP
PHP获取文件的MD5值并判断是否被修改的例子
Jun 19 PHP
Yii Framework框架获取分类下面的所有子类方法
Jun 20 PHP
PHP程序员必须清楚的问题汇总
Dec 18 PHP
给ECShop添加最新评论
Jan 07 PHP
PHP查询附近的人及其距离的实现方法
May 11 PHP
PHP实现的简单适配器模式示例
Jun 22 PHP
PHP实现微信小程序人脸识别刷脸登录功能
May 24 PHP
PHP7新功能总结
Apr 14 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
3.从实例开始
2006/10/09 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
js常用代码段整理
2011/11/30 Javascript
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
javascript变量声明实例分析
2015/04/25 Javascript
Javascript实现单例模式
2016/01/24 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
几种tab切换详解
2017/02/03 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
vue.js使用v-pre与v-html输出HTML操作示例
2018/07/07 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
详解微信小程序开发用户授权登陆
2019/04/24 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
[02:33]DOTA2英雄基础教程 司夜刺客
2013/12/04 DOTA
python return逻辑判断表达式实现解析
2019/12/02 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
7 For All Mankind官网:美国加州洛杉矶的高级牛仔服装品牌
2018/12/20 全球购物
新学期国旗下演讲稿
2014/05/08 职场文书
机械电子工程专业求职信
2014/06/22 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
超市督导岗位职责
2015/04/10 职场文书
监护人证明
2015/06/19 职场文书
企业财务管理制度范本
2015/08/04 职场文书
董事长秘书工作总结
2015/08/14 职场文书