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


Posted in PHP onJune 25, 2014

十五、研究页面(ResearchBuildingPage.php)

研究因为没有队列,所以相对简单一些;但是也有一些比较特殊的东西。我们先看研究之前的一个处理函数HandleTechnologieBuild()。

这个函数是处理现在的科技研究的,其中b_tech_planet字段是研究的星球ID,b_tech字段是完成研究的时间点,b_tech_id字段是研究的具体科技字段名。函数逻辑不难,我就不仔细讲解了,大家自己看看,下面正式进入研究页面:

首先要检查当前星球是否有研究所。

然后检查当前星球的建筑队列中是否有研究所,使用函数CheckLabSettingsInQueue()检查;此函数略过。

接下来又是前面的结构,我们先看下面的构造代码,循环:

1.判断是否是科技研究

2.判断是否可以进行这项研究,主要是vars.php文件中的前置条件检查

3.取得研究的需要资源

4.取得研究的需要时间

5.然后判断这样研究是否可以进行

6.下面是个分支:如果没有研究在进行,那么构造出下一等级的html;如果有研究在进行,就构造出研究剩余的时间

7.最后输出页面

现在回到前面,讲解玩家点击研究的逻辑。分成两段逻辑,一是研究、二是取消研究。

1.研究:先进行一些安全检查,然后取得所需资源和时间,构造扣除资源等语句

2.取消研究:取得所需资源,构造退回资源等语句

3.最后提交到数据库,更新资源和其他一些信息

研究页面的逻辑比起前面建筑页面简单多了,下一章将是造船厂页面。

PHP 相关文章推荐
PHP4 与 MySQL 数据库操作函数详解
Dec 06 PHP
ThinkPHP的URL重写问题
Jun 22 PHP
php批量删除数据库下指定前缀的表以prefix_为例
Aug 24 PHP
php取得字符串首字母的方法
Mar 25 PHP
PHP使用CURL实现多线程抓取网页
Apr 30 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
Dec 18 PHP
示例详解Laravel的注册重构
Aug 14 PHP
利用PHP判断文件是否为图片的方法总结
Jan 06 PHP
[原创]PHP实现SQL语句格式化功能的方法
Jul 28 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
Laravel框架自定义验证过程实例分析
Feb 01 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
Jun 25 #PHP
JavaScript创建命名空间的5种写法
Jun 24 #PHP
PHP获取windows登录用户名的方法
Jun 24 #PHP
PHP获取MySql新增记录ID值的3种方法
Jun 24 #PHP
PHP判断表单复选框选中状态完整例子
Jun 24 #PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
Jun 24 #PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
Jun 24 #PHP
You might like
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
PHP中“简单工厂模式”实例代码讲解
2012/09/04 PHP
destoon之一键登录设置
2014/06/21 PHP
PHP中TP5 上传文件的实例详解
2017/07/31 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
百度移动版的url编码解码示例
2014/04/29 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
浅谈struts1 & jquery form 文件异步上传
2017/05/25 jQuery
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
iView框架问题整理小结
2018/10/16 Javascript
vuex入门最详细整理
2020/03/04 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
vue iview 隐藏Table组件里的某一列操作
2020/11/13 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
深入解析Python中的线程同步方法
2016/06/14 Python
python 创建弹出式菜单的实现代码
2017/07/11 Python
Python实现的自定义多线程多进程类示例
2018/03/23 Python
python 读取txt,json和hdf5文件的实例
2018/06/05 Python
opencv导入头文件时报错#include的解决方法
2019/07/31 Python
python matplotlib拟合直线的实现
2019/11/19 Python
pytorch ImageFolder的覆写实例
2020/02/20 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
html5.2 dialog简介详解
2018/02/27 HTML / CSS
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
工程业务员工作职责
2013/12/07 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
销售经理岗位职责
2015/01/31 职场文书
礼仪培训心得体会
2016/01/22 职场文书
canvas 中如何实现物体的框选
2022/08/05 Javascript