PHP网页游戏学习之Xnova(ogame)源码解读(十三) |
十六、造船和防御(FleetBuildingPage.php与DefensesBuildingPage.php页面) 先说造船厂页面,其实这个页面中并没有真正的造船,只是把要造的船和数量保存到数据库中;产生船舰的代码在另外一个函数里面 。下面我们开始分析这个页面,并且也按照前面的思路,先讲解构造页面的代码 。 首先判断本星球是否已有造船厂,没有当然要提示 。 下面使用循环语句,构造出每种船舰的建造页面,这段代码我觉得不需要再详细讲解了 。 接下来是要显示正在制造的船舰列表,要脚本动态显示,实际上是假像;即使显示有船舰造好了,如果不是刷新,数据库里面并不会有 。注意这里有两个重要的字段:b_hangar_id保存着要造的船列表;b_hangar保存着上次更新后剩下的时间,单位是秒 。 使用函数ElementBuildListBox(),构造出一个正在造船的脚本,函数代码大家自己看,不难,只要理解了前面我说的两个字段就可以了 。 最后输出造船厂页面 。 现在我们又回到前面,玩家输入要制造的船舰的数量,进入这段代码 。 1.取得要制造的船舰代码和数量 if ($Count >= 1) { $CurrentPlanet[metal] -= $Ressource[metal]; $CurrentPlanet[crystal] -= $Ressource[crystal]; $CurrentPlanet[deuterium] -= $Ressource[deuterium]; $CurrentPlanet[b_hangar_id].= "". $Element .",". $Count .";"; } 造船厂页面完成了,下面我们来看防御页面 。这个页面基本逻辑和造船厂一样,这里就不写了 。不同的是多一些逻辑限制,罗列出来如下: 1.在构造防御单位页面的时候,代码407和408是大小防御护盾,要注意只能有一个 造船和防御页面简单的讲解完了,最重要的制造代码在另外一个函数里面,下一章节分析 。 |