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 相关文章推荐
用文本作数据处理
Oct 09 PHP
打造计数器DIY三步曲(下)
Oct 09 PHP
PHP个人网站架设连环讲(三)
Oct 09 PHP
PHP中的cookie
Nov 26 PHP
php XPath对XML文件查找及修改实现代码
Jul 27 PHP
php中判断文件空目录是否有读写权限的函数代码
Aug 07 PHP
解析Win7 XAMPP apache无法启动的问题
Jun 26 PHP
php实现模拟post请求用法实例
Jul 11 PHP
php使用escapeshellarg时中文被过滤的解决方法
Jul 10 PHP
详解php几行代码实现CSV格式文件输出
Jul 01 PHP
PHP parse_ini_file函数的应用与扩展操作示例
Jan 07 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
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 中文处理技巧
2010/04/25 PHP
php实现批量压缩图片文件大小的脚本
2014/07/04 PHP
php文件夹的创建与删除方法
2015/01/24 PHP
php操作MongoDB类实例
2015/06/17 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
js+xml生成级联下拉框代码
2012/07/24 Javascript
在js文件中如何获取basePath处理js路径问题
2013/07/10 Javascript
JavaScript的21条基本知识点
2014/03/04 Javascript
jquery实现textarea 高度自适应
2015/03/11 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
jQuery实现产品对比功能附源码下载
2016/08/09 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
Python中的迭代器漫谈
2015/02/03 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
将python代码和注释分离的方法
2018/04/21 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
python如何构建mock接口服务
2021/01/28 Python
Python 中 sorted 如何自定义比较逻辑
2021/02/02 Python
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
有模特经验的简历自我评价
2013/09/19 职场文书
办加油卡单位介绍信
2014/01/09 职场文书
社区庆中秋节活动方案
2014/02/07 职场文书
婚内房产协议书范本
2014/10/02 职场文书
小学运动会通讯稿
2015/07/18 职场文书
公司员工培训管理制度
2015/08/04 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP
CSS3 制作的悬停缩放特效
2021/04/13 HTML / CSS
vue3不同环境下实现配置代理
2022/05/25 Vue.js