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
php zip文件解压类代码
Dec 02 PHP
php自动获取目录下的模板的代码
Aug 08 PHP
PHP 第二节 数据类型之转换
Apr 28 PHP
深入php之规范编程命名小结
May 15 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
Jun 21 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
10个超级有用值得收藏的PHP代码片段
Jan 22 PHP
PHP生成各种常见验证码和Ajax验证过程
Jan 10 PHP
PHP的openssl加密扩展使用小结(推荐)
Jul 18 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 PHP
laravel框架的安装与路由实例分析
Oct 11 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
php file_get_contents函数轻松采集html数据
2010/04/22 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
2011/03/19 PHP
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
浅析PHP的ASCII码转换类
2013/07/05 PHP
PHP中mysqli_affected_rows作用行数返回值分析
2014/12/26 PHP
php注册登录系统简化版
2020/12/28 PHP
PHP 7.4 新语法之箭头函数实例详解
2019/05/09 PHP
表格 隔行换色升级版
2009/11/07 Javascript
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
学习javascript面向对象 理解javascript原型和原型链
2016/01/04 Javascript
javascript显示上周、上个月日期的处理方法
2016/02/03 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
2016/07/14 Javascript
Google 地图类型详解及示例代码
2016/08/06 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
谈谈JS中的!!
2017/12/07 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
基于element-ui对话框el-dialog初始化的校验问题解决
2020/09/11 Javascript
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
python文件与目录操作实例详解
2016/02/22 Python
浅谈Python_Openpyxl使用(最全总结)
2019/09/05 Python
python输入错误后删除的方法
2019/10/12 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
python打包多类型文件的操作方法
2020/09/21 Python
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
建筑工程实习自我鉴定
2013/09/19 职场文书
中英双版中文教师求职信
2013/10/27 职场文书
工商企业管理应届生求职信
2013/11/03 职场文书
师范毕业生自我鉴定
2014/01/15 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书