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 相关文章推荐
PHP5.0对象模型探索之抽象方法和抽象类
Sep 05 PHP
使用sockets:从新闻组中获取文章(一)
Oct 09 PHP
基于empty函数的输出详解
Jun 17 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
Jan 07 PHP
php内存缓存实现方法
Jan 24 PHP
学习php设计模式 php实现访问者模式(Visitor)
Dec 07 PHP
WordPress开发中的get_post_custom()函数使用解析
Jan 04 PHP
深入理解PHP中的count函数
May 31 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
Nov 25 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
Apr 07 PHP
PHP更安全的密码加密机制Bcrypt详解
Jun 18 PHP
php实现微信公众平台发红包功能
Jun 14 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
php中对xml读取的相关函数的介绍一
2008/06/05 PHP
PHP生成HTML静态页面实例代码
2008/08/31 PHP
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
php获取中文拼音首字母类和函数分享
2014/04/24 PHP
PHP与SQL语句写一句话木马总结
2019/10/11 PHP
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
Underscore源码分析
2015/12/30 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
jQuery属性选择器用法实例分析
2019/06/28 jQuery
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
vue router-link 默认a标签去除下划线的实现
2020/11/06 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
python列表去重的二种方法
2014/02/14 Python
举例区分Python中的浅复制与深复制
2015/07/02 Python
深入源码解析Python中的对象与类型
2015/12/11 Python
Python实现简单的语音识别系统
2017/12/13 Python
Python向MySQL批量插数据的实例讲解
2018/03/31 Python
Python自定义一个异常类的方法
2019/06/27 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
python获取引用对象的个数方式
2019/12/20 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
2020/02/03 Python
django跳转页面传参的实现
2020/09/17 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
自动化专业本科毕业生求职信
2013/10/20 职场文书
高中生自我鉴定范文
2013/10/30 职场文书
高中毕业生个人自我鉴定
2013/11/24 职场文书
八年级音乐教学反思
2014/01/09 职场文书
校运会新闻稿
2015/07/17 职场文书
win10音频服务未响应怎么解决?win10音频服务未响应未修复的解决方法
2022/08/14 数码科技