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 str_pad 函数用法简介
Jul 11 PHP
php 强制下载文件实现代码
Oct 28 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
Jul 29 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
Aug 16 PHP
PHP命名空间(namespace)的使用基础及示例
Aug 18 PHP
thinkphp的静态缓存用法分析
Nov 29 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
Feb 02 PHP
简单谈谈php中的unicode和utf8编码
Jun 10 PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
Sep 30 PHP
php实现数组中出现次数超过一半的数字的统计方法
Oct 14 PHP
php常用日期时间函数实例小结
Jul 04 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的特殊设置
2006/10/09 PHP
可定制的PHP缩略图生成程式(需要GD库支持)
2007/03/06 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
document.getElementBy("id")与$("#id")有什么区别
2013/09/22 Javascript
javascript白色简洁计算器
2015/05/04 Javascript
JS重载实现方法分析
2016/12/16 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
Vue computed计算属性的使用方法
2017/07/14 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
vue 组件高级用法实例详解
2018/04/11 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
详细解读Python中解析XML数据的方法
2015/10/15 Python
Django中Forms的使用代码解析
2018/02/10 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
python把1变成01的步骤总结
2019/02/27 Python
python实现局域网内实时通信代码
2019/12/22 Python
如何基于python实现脚本加密
2019/12/28 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
django2.2 和 PyMySQL版本兼容问题
2020/02/17 Python
Python wordcloud库安装方法总结
2020/12/31 Python
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
日本著名的服饰鞋帽综合类购物网站:MAGASEEK
2019/01/09 全球购物
中软国际Java程序员机试题
2012/08/19 面试题
音乐学个人的自荐书范文
2013/11/26 职场文书
一份报关员的职业规划范文
2014/01/08 职场文书
地质灾害防治方案
2014/05/14 职场文书
党员群众路线自我剖析材料
2014/10/06 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers