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 相关文章推荐
ThinkPHP令牌验证实例
Jun 18 PHP
PHP中的reflection反射机制测试例子
Aug 05 PHP
PHPer 需要了解的 5 个 Composer 小技巧
Aug 18 PHP
php强制用户转向www域名的方法
Jun 19 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 PHP
100行PHP代码实现socks5代理服务器
Apr 28 PHP
基于PHP生成简单的验证码
Jun 01 PHP
php判断是否为ajax请求的方法
Nov 29 PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 PHP
laravel配置Redis多个库的实现方法
Apr 10 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
Sep 30 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
PHP PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
php实现12306余票查询、价格查询示例
2014/04/17 PHP
CodeIgniter常用知识点小结
2016/05/26 PHP
php快速导入大量数据的实例方法
2019/09/23 PHP
Javascript解决常见浏览器兼容问题的12种方法
2010/01/04 Javascript
JavaScript关于select的相关操作说明
2010/01/13 Javascript
ListBox实现上移,下移,左移,右移的简单实例
2014/02/13 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
javascript获取flash版本号的方法
2014/11/20 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
基于jquery实现最简单的选项卡切换效果
2016/05/08 Javascript
js 获取元素所有兄弟节点的实现方法
2016/09/06 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
Bootstrap模态框插件使用详解
2017/05/11 Javascript
JavaScript实现无刷新上传预览图片功能
2017/08/02 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
Node.js操作系统OS模块用法分析
2019/01/04 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
vue项目中实现缓存的最佳方案详解
2019/07/11 Javascript
python 定时修改数据库的示例代码
2018/04/08 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
python爬虫模块URL管理器模块用法解析
2020/02/03 Python
python json 递归打印所有json子节点信息的例子
2020/02/27 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
加拿大便宜的隐形眼镜商店:Clearly
2016/09/15 全球购物
瑞士香水购物网站:Parfumcity.ch
2017/01/14 全球购物
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
欧舒丹澳洲版:L’OCCITANE
2017/07/17 全球购物
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
新郎结婚感言
2015/07/31 职场文书