PHP网页游戏学习之Xnova(ogame)源码解读十四

十七、资源更新(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.最后如果有未造完的保持起来下次建造,并返回

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...