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
php 删除记录同时删除图片文件的实现代码
May 12 PHP
PHP 数组遍历方法大全(foreach,list,each)
Jun 30 PHP
php生成略缩图代码
Jul 16 PHP
百度地图API应用之获取用户的具体位置
Jun 10 PHP
php Imagick获取图片RGB颜色值
Jul 28 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
PHP中__FILE__、dirname与basename用法实例分析
Dec 01 PHP
php获取本机真实IP地址实例代码
Mar 31 PHP
php单链表实现代码分享
Jul 04 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
Feb 17 PHP
PHP基于openssl实现非对称加密代码实例
Jun 19 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
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
CI映射(加载)数据到view层的方法
2016/03/28 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
JS实现区分中英文并统计字符个数的方法示例
2018/06/09 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
JS实现简单的抽奖转盘效果示例
2019/02/16 Javascript
Vue 实例事件简单示例
2019/09/19 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
[02:08]什么藏在DOTA2 TI9“小紫本”里?斧王历险记告诉你!
2019/05/17 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
分享python数据统计的一些小技巧
2016/07/21 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
解释i节点在文件系统中的作用
2013/11/26 面试题
商务英语专业应届毕业生求职信
2013/10/28 职场文书
成功的酒店创业计划书
2013/12/27 职场文书
经典演讲稿范文
2013/12/30 职场文书
新护士岗前培训制度
2014/02/02 职场文书
实习介绍信模板
2015/01/30 职场文书
总结Pyinstaller打包的高级用法
2021/06/28 Python
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL