PHP网页游戏学习之Xnova(ogame)源码解读(十二)
内容摘要
十五、研究页面(ResearchBuildingPage.php)
研究因为没有队列,所以相对简单一些;但是也有一些比较特殊的东西。我们先看研究之前的一个处理函数HandleTechnologieBuild()。
这个函
研究因为没有队列,所以相对简单一些;但是也有一些比较特殊的东西。我们先看研究之前的一个处理函数HandleTechnologieBuild()。
这个函
文章正文
十五、研究页面(ResearchBuildingPage.php)
研究因为没有队列,所以相对简单一些;但是也有一些比较特殊的东西。我们先看研究之前的一个处理函数HandleTechnologieBuild()。
这个函数是处理现在的科技研究的,其中b_tech_planet字段是研究的星球ID,b_tech字段是完成研究的时间点,b_tech_id字段是研究的具体科技字段名。函数逻辑不难,我就不仔细讲解了,大家自己看看,下面正式进入研究页面:
首先要检查当前星球是否有研究所。
然后检查当前星球的建筑队列中是否有研究所,使用函数CheckLabSettingsInQueue()检查;此函数略过。
接下来又是前面的结构,我们先看下面的构造代码,循环:
1.判断是否是科技研究
2.判断是否可以进行这项研究,主要是vars.php文件中的前置条件检查
3.取得研究的需要资源
4.取得研究的需要时间
5.然后判断这样研究是否可以进行
6.下面是个分支:如果没有研究在进行,那么构造出下一等级的html;如果有研究在进行,就构造出研究剩余的时间
7.最后输出页面
现在回到前面,讲解玩家点击研究的逻辑。分成两段逻辑,一是研究、二是取消研究。
1.研究:先进行一些安全检查,然后取得所需资源和时间,构造扣除资源等语句
2.取消研究:取得所需资源,构造退回资源等语句
3.最后提交到数据库,更新资源和其他一些信息
研究页面的逻辑比起前面建筑页面简单多了,下一章将是造船厂页面。
代码注释