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


Posted in PHP onJune 25, 2014

十四、建筑页面(BatimentBuildingPage.php)

现在开始解析真正的建筑页面,里面用到的函数不少,不过都不难,我们一起来看。

一开始先检查星球的已使用空间并更新,使用函数CheckPlanetUsedFields,这个函数前面讲过,实现也不难。

接下来这个是我们前面重点讲过的结构,就是判断是否输入;所以我们先跳到这段代码的后面看,但是这里有几个函数是处理一些建筑队列的。

1. SetNextQueueElementOnTop:我们讲过,处理队列中的下一个建筑

2. ShowBuildingQueue:构造当前的队列,代码虽多,但简单,有兴趣可以自己跟踪

3. BuildingSavePlanetRecord:保存前面代码构造的建筑队列到数据库

4.BuildingSaveUserRecord:保存资源积分(事务官)到数据库

然后要构造建筑页面,我做一个文字说明,大部分UI的构造不写:

1.     判断最大队列值

2.     计算出当前星球的最大空间

3.     判断当前的建筑是否可以建造

4.     如果可以造的话,要取得建造时间、所需资源

5.     如果建造的是研究所需要判断是否在研究

最后就是把前面准备好的各项内容构造出html页面,这个看看就应该能明白。接下来讲解我们跳过的有用户输入部分代码,结构很清晰:

1.     取得用户输入的各项参数(实际是点击的)

2.     判断要建造的建筑是星球上还是月球上

3.     还有对链接合法性的判断,如果是不合法的,用户将受到惩罚(嘿嘿)

4.     然后是根据用户的操作,进入不同的队列功能

5.     CancelBuildingFromQueue:取消正在建造的建筑

6.     RemoveBuildingFromQueue:从队列中移除一个建筑

7.     AddBuildingToQueue(true):在队列中插入一个建造建筑

8.     AddBuildingToQueue(false):在队列中插入一个取消建筑

9.     ResetThisFuckingCheater:惩罚用户函数,大家自己看吧

上面几个函数具体功能可以自己看,都是对队列的操作,大同小异。

PHP 相关文章推荐
Ajax PHP分页演示
Jan 02 PHP
zend api扩展的php对象的autoload工具
Apr 18 PHP
PHP的加密方式及原理
Jun 14 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
May 06 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
Jul 03 PHP
php foreach循环中使用引用的问题
Nov 06 PHP
ThinkPHP模板引擎之导入资源文件方法详解
Jun 18 PHP
CentOS6.5 编译安装lnmp环境
Dec 21 PHP
php发送邮件的问题详解
Jun 22 PHP
PHP中使用array函数新建一个数组
Nov 19 PHP
thinkPHP5实现的查询数据库并返回json数据实例
Oct 23 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
Aug 26 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
PHP网页游戏学习之Xnova(ogame)源码解读(八)
Jun 23 #PHP
You might like
apache rewrite_module模块使用教程
2008/01/10 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
WAF的正确bypass
2017/01/05 PHP
document.all与WEB标准
2020/05/13 Javascript
javascript实现轮显新闻标题链接
2007/08/13 Javascript
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
nodejs 实现模拟form表单上传文件
2014/07/14 NodeJs
jQuery DOM插入节点操作指南
2015/03/03 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
原生JS实现N级菜单的代码
2017/05/21 Javascript
深入理解Angular中的依赖注入
2017/06/26 Javascript
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
layui实现tab的添加拒绝重复的方法
2019/09/04 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
Python中的字典与成员运算符初步探究
2015/10/13 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
利用Python pandas对Excel进行合并的方法示例
2020/11/04 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
铁路工务反思材料
2014/02/07 职场文书
给校长的一封建议书
2014/03/12 职场文书
初中家长意见
2015/06/03 职场文书
Golang生成Excel文档的方法步骤
2021/06/09 Golang