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 相关文章推荐
用libtemplate实现静态网页生成
Oct 09 PHP
php5 and xml示例
Nov 22 PHP
discuz的php防止sql注入函数
Jan 17 PHP
php设计模式之单例、多例设计模式的应用分析
Jun 30 PHP
php中getservbyport与getservbyname函数用法实例
Nov 18 PHP
php猜单词游戏
Sep 29 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
Dec 09 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
May 18 PHP
CodeIgniter框架验证码类库文件与用法示例
Mar 18 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 PHP
PHP实现字母数字混合验证码功能
Jul 11 PHP
基于PHP实现短信验证码发送次数限制
Jul 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
一个多文件上传的例子(原创)
2006/10/09 PHP
php实现通用的信用卡验证类
2015/03/24 PHP
PHP编程计算文件或数组中单词出现频率的方法
2017/05/22 PHP
利用javascript的面向对象的特性实现限制试用期
2011/08/04 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
2015/04/22 Javascript
浅谈jQuery效果函数
2016/09/16 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
vue中$nextTick的用法讲解
2019/01/17 Javascript
微信小程序swiper左右扩展各显示一半代码实例
2019/12/05 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
Python3.x版本中新的字符串格式化方法
2015/04/24 Python
python自定义解析简单xml格式文件的方法
2015/05/11 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
Python实现k-means算法
2018/02/23 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
2018/05/30 Python
python 实现批量替换文本中的某部分内容
2019/12/13 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
keras 自定义loss层+接受输入实例
2020/06/28 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
Under Armour安德玛意大利官网:美国高端运动科技品牌
2020/01/16 全球购物
《绿色蝈蝈》教学反思
2014/03/02 职场文书
关于运动会的广播稿
2014/09/22 职场文书
楚门的世界观后感
2015/06/03 职场文书
摘录式读书笔记
2015/07/01 职场文书
清洁工工作总结
2015/08/11 职场文书
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android