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
人尽可用的Windows技巧小贴士之下篇
Mar 22 PHP
页面乱码问题的根源及其分析
Aug 09 PHP
PHP获取本周第一天和最后一天示例代码
Feb 24 PHP
ThinkPHP行为扩展Behavior应用实例详解
Jul 22 PHP
php自动给网址加上链接的方法
Jun 02 PHP
php实现源代码加密的方法
Jul 11 PHP
PHP面向对象程序设计类的定义与用法简单示例
Dec 27 PHP
php基于SQLite实现的分页功能示例
Jun 21 PHP
PHP文件类型检查及fileinfo模块安装使用详解
May 09 PHP
php异常处理捕获错误整理
Sep 23 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 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
关于shopex同步ucenter的redirect问题,导致script不运行
2013/04/10 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
2015/06/23 PHP
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
java解析json方法总结
2019/05/16 PHP
javascript StringBuilder类实现
2008/12/22 Javascript
window.location.href中url中数据量太大时的解决方法
2013/12/23 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
Javascript基础学习笔记(菜鸟必看篇)
2016/07/22 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
ES6学习教程之对象的扩展详解
2017/05/02 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
python base64 decode incorrect padding错误解决方法
2015/01/08 Python
详细分析python3的reduce函数
2017/12/05 Python
python基于http下载视频或音频
2018/06/20 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
python给list排序的简单方法
2020/12/10 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
一套中级Java程序员笔试题
2015/01/14 面试题
应聘教师自荐信
2013/10/12 职场文书
秋季校运动会广播稿
2014/02/23 职场文书
基层党建工作汇报材料
2014/08/15 职场文书
新党章心得体会
2014/09/04 职场文书
公司感恩节活动策划书
2014/10/11 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
在校大学生才艺比赛策划书怎么写?
2019/08/26 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书
浅谈Node的内存泄露问题
2022/05/06 NodeJs