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 相关文章推荐
E路文章系统PHP
Dec 11 PHP
生成ubuntu自动切换壁纸xml文件的php代码
Jul 17 PHP
发一个php简单的伪原创程序,配合商城采集用的
Oct 12 PHP
thinkPHP的Html模板标签使用方法
Nov 13 PHP
新手菜鸟必读:session与cookie的区别
Aug 22 PHP
PHP判断表单复选框选中状态完整例子
Jun 24 PHP
PHP中预定义的6种接口介绍
May 12 PHP
php 如何禁用eval() 函数实例详解
Dec 01 PHP
php 魔术常量详解及实例代码
Dec 04 PHP
thinkPHP3.2.2框架行为扩展及demo示例
Jun 19 PHP
PHP获取HTTP body内容的方法
Dec 31 PHP
PHP实现简易用户登录系统
Jul 10 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录入页面中动态从数据库中提取数据的实现
2006/10/09 PHP
PHP number_format() 函数定义和用法
2012/06/01 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
thinkPHP5框架导出Excel文件简单操作示例
2018/08/03 PHP
jquery 年会抽奖程序
2011/12/22 Javascript
js中根据字数截取字符串,不能截断url
2012/01/12 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
2018/06/13 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
2018/09/22 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
简单介绍Python中的floor()方法
2015/05/15 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
python生成excel的实例代码
2017/11/08 Python
django初始化数据库的实例
2018/05/27 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
Python操作Jira库常用方法解析
2020/04/10 Python
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
英国知名化妆品网站:Revolution Beauty(原TAM Beauty)
2018/02/28 全球购物
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
极简鞋类,赤脚的感觉:Lems Shoes
2019/08/06 全球购物
扩大国家免疫规划实施方案
2014/03/21 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书
2014年小学教导处工作总结
2014/12/19 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python