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中大括号作用介绍
Mar 22 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
Jun 05 PHP
解析Win7 XAMPP apache无法启动的问题
Jun 26 PHP
使用PHP curl模拟浏览器抓取网站信息
Oct 28 PHP
php加密算法之实现可逆加密算法和解密分享
Jan 21 PHP
PHP中使用Imagick操作PSD文件实例
Jan 26 PHP
php简单实现快速排序的方法
Apr 04 PHP
解决php表单重复提交实现方法
Sep 29 PHP
PHP 读取文本文件内容并分页显示
Jan 02 PHP
php实现简单爬虫的开发
Mar 28 PHP
php实现的http请求封装示例
Nov 08 PHP
PHP标准库 (SPL)――Countable用法示例
Jun 05 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数组中删除元素之重新索引的方法
2014/09/16 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
php源码之将图片转化为data/base64数据流实例详解
2016/11/27 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
微信小程序调用微信支付接口的实现方法
2019/04/29 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
在vue中使用防抖函数组件操作
2020/07/26 Javascript
vue+iview使用树形控件的具体使用
2020/11/02 Javascript
Python中使用 Selenium 实现网页截图实例
2014/07/18 Python
python通过socket查询whois的方法
2015/07/18 Python
numpy.ndarray 实现对特定行或列取值
2019/12/05 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
python中os.remove()用法及注意事项
2021/01/31 Python
linux面试题参考答案(7)
2012/10/29 面试题
军校本科大学生自我评价
2014/01/14 职场文书
总结表彰大会主持词
2014/03/26 职场文书
合作经营协议书范本
2014/09/16 职场文书
先进班集体事迹材料
2014/12/25 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
如何利用opencv判断两张图片是否相同详解
2021/07/07 Python
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android