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.MVC的模板标签系统(五)
Sep 05 PHP
15个小时----从修改程序到自己些程序
Oct 09 PHP
php比较多维数组中值的大小排序实现代码
Sep 08 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
May 15 PHP
php函数与传递参数实例分析
Nov 15 PHP
ThinkPHP函数详解之M方法和R方法
Sep 10 PHP
php.ini中date.timezone设置详解
Nov 20 PHP
thinkPHP中验证码的简单实现方法
Dec 05 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
Mar 06 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
Mar 31 PHP
详解关于php的xdebug配置(编辑器vscode)
Jan 29 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
Oct 18 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中用数组的方法设置cookies
2011/04/21 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
PHP异常处理浅析
2015/05/12 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
Use Word to Search for Files
2007/06/15 Javascript
用js 让图片在 div或dl里 居中,底部对齐
2008/01/21 Javascript
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
浅析JavaScript事件和方法
2015/02/28 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
js隐式转换的知识实例讲解
2018/09/28 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
Python学习笔记之常用函数及说明
2014/05/23 Python
进一步探究Python中的正则表达式
2015/04/28 Python
Python实现批量下载文件
2015/05/17 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
世界顶级足球门票网站:Live Football Tickets
2017/10/14 全球购物
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
智乐游戏测试笔试题
2014/05/21 面试题
新三好学生主要事迹
2014/01/23 职场文书
劳动竞赛活动方案
2014/02/20 职场文书
品德评语大全
2014/05/05 职场文书
法制演讲稿
2014/09/10 职场文书
2014年财政工作总结
2014/12/10 职场文书
感恩教育主题班会
2015/08/12 职场文书
学校团代会开幕词
2016/03/04 职场文书
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis