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 相关文章推荐
php 数据库字段复用的基本原理与示例
Jul 22 PHP
批量去除PHP文件中bom的PHP代码
Mar 13 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
Jan 11 PHP
php数组合并array_merge()函数使用注意事项
Jun 19 PHP
PHP实现货币换算的方法
Nov 29 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
Dec 25 PHP
PHP+MySQL实现的简单投票系统实例
Feb 24 PHP
iOS+PHP注册登录系统 PHP部分(上)
Dec 26 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 PHP
解决laravel资源加载路径设置的问题
Oct 14 PHP
Laravel框架Eloquent ORM修改数据操作示例
Dec 03 PHP
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
Apr 01 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使用sql数据库 获取字段问题介绍
2013/08/12 PHP
php实现按照权重随机排序数据的方法
2015/01/09 PHP
Joomla框架实现字符串截取的方法示例
2017/07/18 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
jquery 分页控件实现代码
2009/11/30 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
2014/05/23 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
layui动态绑定事件的方法
2019/09/20 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
python基础教程之分支、循环简单用法
2016/06/16 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
python timestamp和datetime之间转换详解
2017/12/11 Python
Python学习之Django的管理界面代码示例
2018/02/10 Python
在django模板中实现超链接配置
2019/08/21 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
详解Pycharm第三方库的安装及使用方法
2020/12/29 Python
Python try except finally资源回收的实现
2021/01/25 Python
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
耐克亚太地区:Nike APAC
2019/12/07 全球购物
乡镇庆八一活动方案
2014/02/02 职场文书
物业消防安全责任书
2014/07/23 职场文书
公司授权委托书范本
2014/09/18 职场文书
小区门卫的岗位职责
2014/09/26 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
公司辞职信模板
2015/05/13 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书
小学三年级作文之写景
2019/11/05 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS