当前位置: 编程技术>php
PHP网页游戏学习之Xnova(ogame)源码解读(十)
来源: 互联网 发布时间:2014-08-26
本文导语: 十三、 建造总览(buildings.php) 从这篇文章开始,对xnova的研究重点放在流程上面,其实就是大量的函数;至于页面的构造将不再仔细解释。 buildings.php文件不只是处理建筑金属矿产等,而是包括了建筑、研究、造船厂、防御四...
十三、 建造总览(buildings.php)
从这篇文章开始,对xnova的研究重点放在流程上面,其实就是大量的函数;至于页面的构造将不再仔细解释。
buildings.php文件不只是处理建筑金属矿产等,而是包括了建筑、研究、造船厂、防御四个功能;通过传递不同的参数来决定进入哪个功能,所以这个文件其实是一个导航文件。下面我们简单解释下这个文件。
//更新当前星球的建筑队列,比较复杂 UpdatePlanetBatimentQueueList ( $planetrow, $user ); //处理当前用户的科技研究 HandleTechnologieBuild ( $planetrow, $user ); //下面是根据参数进入不同的功能页面 //造船厂页面 case 'fleet': FleetBuildingPage ( $planetrow, $user ); //研究页面 case 'research': ResearchBuildingPage ( $planetrow, $user, $IsWorking['OnWork'], $IsWorking['WorkOn'] ); //防御页面 case 'defense': DefensesBuildingPage ( $planetrow, $user ); //剩下的自然是建筑页面 default: BatimentBuildingPage ( $planetrow, $user ); 下面我们看更新当前星球的建筑队列函数 function UpdatePlanetBatimentQueueList ( &$CurrentPlanet, &$CurrentUser ) { $RetValue = false; //判断是否有建筑队列,字段b_building_id保存建筑队列 if ( $CurrentPlanet['b_building_id'] != 0 ) { //进入循环,开始处理队列 while ( $CurrentPlanet['b_building_id'] != 0 ) { //如果当前建造的建筑时间小于time的话,就处理,字段b_building保存建筑到期的时间 if ( $CurrentPlanet['b_building']