• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-26) 37次浏览 已收录 0个评论

十三、 建造总览(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 )<strong style="color:transparent">来2源gaodaima#com搞(代@码&网</strong><label>搞gaodaima代码</label> { //进入循环,开始处理队列 while ( $CurrentPlanet['b_building_id'] != 0 ) {  //如果当前建造的建筑时间小于time的话,就处理,字段b_building保存建筑到期的时间  if ( $CurrentPlanet['b_building'] <= time() ) {  //先更新下星球的资源,以后再解析  PlanetResourceUpdate ( $CurrentUser, $CurrentPlanet, $CurrentPlanet['b_building'], false );  //处理掉当前的建筑,并把当前建筑字段清空;代码很多,其实比较简单  $IsDone = CheckPlanetBuildingQueue( $CurrentPlanet, $CurrentUser );  //如果前面处理成功,这里就要处理队列中的下一个建筑,包括扣除资源  if ( $IsDone == true ) {   SetNextQueueElementOnTop ( $CurrentPlanet, $CurrentUser );  }  } else {  $RetValue = true;  break;  } } } return $RetValue;} 

我们继续下去,跟踪入CheckPlanetBuildingQueue函数,这个函数代码挺多,其实简单;我不写注释了,说下流程。先从字段b_building_id解析出来建筑的种类、建筑或拆除、结束建筑的时间等;然后更新该建筑的等级,升级或者降级;更新星球的最大空间和使用空间;更新当前建筑的时间为0和更新当前的剩余建筑队列。不难吧,呵呵。

接下来处理队列中的下一个建筑,跟踪SetNextQueueElementOnTop函数,也不难。先从队列中解析出建筑数据;然后判断是否可以建造,如果可以就要计算建造资源等;如果不行就发送消息等;最后更新建筑完成的时间、剩余建筑队列和资源等。和上面的流程一样简单,拿下。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP网页游戏学习之Xnova(ogame)源码解读(十)_php实例
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址