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


Posted in PHP onJune 26, 2014

十六、造船和防御(FleetBuildingPage.php与DefensesBuildingPage.php页面)

先说造船厂页面,其实这个页面中并没有真正的造船,只是把要造的船和数量保存到数据库中;产生船舰的代码在另外一个函数里面。下面我们开始分析这个页面,并且也按照前面的思路,先讲解构造页面的代码。

首先判断本星球是否已有造船厂,没有当然要提示。

下面使用循环语句,构造出每种船舰的建造页面,这段代码我觉得不需要再详细讲解了。

接下来是要显示正在制造的船舰列表,要脚本动态显示,实际上是假像;即使显示有船舰造好了,如果不是刷新,数据库里面并不会有。注意这里有两个重要的字段:b_hangar_id保存着要造的船列表;b_hangar保存着上次更新后剩下的时间,单位是秒。

使用函数ElementBuildListBox(),构造出一个正在造船的脚本,函数代码大家自己看,不难,只要理解了前面我说的两个字段就可以了。

最后输出造船厂页面。

现在我们又回到前面,玩家输入要制造的船舰的数量,进入这段代码。

1.取得要制造的船舰代码和数量
2.判断制造的数量是否超过允许的最大值,超过则取最大值
3.如果制造数量不为零,判断是否允许制造
4.然后取得当前资源能制造的最大值
5.设置资源消耗和时间消耗
6.最后更新星球数据,包括减少资源和建造船舰的字段b_hangar_id,贴出代码如下:

if ($Count >= 1) {
 $CurrentPlanet['metal'] -= $Ressource['metal'];
 $CurrentPlanet['crystal'] -= $Ressource['crystal'];
 $CurrentPlanet['deuterium'] -= $Ressource['deuterium'];
 $CurrentPlanet['b_hangar_id'].= "". $Element .",". $Count .";";
}

造船厂页面完成了,下面我们来看防御页面。这个页面基本逻辑和造船厂一样,这里就不写了。不同的是多一些逻辑限制,罗列出来如下:

1.在构造防御单位页面的时候,代码407和408是大小防御护盾,要注意只能有一个
2.在玩家输入数量后的制造代码里面,代码502和503是拦截导弹和星际导弹,要注意两个导弹的数量关系和正在制造列表里面的导弹数量
3.同样使用字段b_hangar_id保存

造船和防御页面简单的讲解完了,最重要的制造代码在另外一个函数里面,下一章节分析。

PHP 相关文章推荐
跟我学小偷程序之成功偷取首页(第三天)
Oct 09 PHP
一步一步学习PHP(6) 面向对象
Feb 16 PHP
PHP通过header实现文本文件下载的代码
Aug 08 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
Jun 09 PHP
php用正则表达式匹配中文实例详解
Nov 06 PHP
php轻松实现中英文混排字符串截取
May 28 PHP
Smarty变量调节器失效的解决办法
Aug 20 PHP
php实现zip文件解压操作
Nov 03 PHP
php简单实现短网址(短链)还原的方法(测试可用)
May 09 PHP
PHP之将POST数据转化为字符串的实现代码
Nov 03 PHP
Thinkphp框架中D方法与M方法的区别
Dec 23 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
ThinkPHP模板自定义标签使用方法
Jun 26 #PHP
ThinkPHP调用百度翻译类实现在线翻译
Jun 26 #PHP
使用ThinkPHP+Uploadify实现图片上传功能
Jun 26 #PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
Jun 26 #PHP
ThinkPHP实现将本地文件打包成zip下载
Jun 26 #PHP
ThinkPHP实现一键清除缓存方法
Jun 26 #PHP
destoon实现商铺管理主页设置增加新菜单的方法
Jun 26 #PHP
You might like
浅析Yii2缓存的使用
2016/05/10 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
2013/10/23 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
根据当前时间在jsp页面上显示上午或下午
2014/08/18 Javascript
基于Node.js实现nodemailer邮件发送
2016/01/26 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
easyui form validate总是返回false的原因及解决方法
2016/11/07 Javascript
关于js函数解释(包括内嵌,对象等)
2016/11/20 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
Vue+Element使用富文本编辑器的示例代码
2017/08/14 Javascript
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
JS Object.preventExtensions(),Object.seal()与Object.freeze()用法实例分析
2018/08/25 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
2018/09/18 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
JS实现电商商品展示放大镜特效
2020/01/07 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
vue表单验证之禁止input输入框输入空格
2020/12/03 Vue.js
pytorch常见的Tensor类型详解
2020/01/15 Python
英国男士时尚网站:Dandy Fellow
2018/02/09 全球购物
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
德国珠宝和配件商店:Styleserver
2021/02/23 全球购物
自我评价正确写法范文
2013/12/10 职场文书
怎样写好自荐信和推荐信
2013/12/26 职场文书
索桥的故事教学反思
2014/02/06 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
文秘班元旦晚会活动策划方案
2014/08/28 职场文书
财务年终工作总结大全
2019/06/20 职场文书
Window server中安装Redis的超详细教程
2021/11/17 Redis
SQL Server2019数据库备份与还原脚本,数据库可批量备份
2021/11/20 SQL Server