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 相关文章推荐
ie6 动态缩略图不显示的原因
Jun 21 PHP
通过PHP修改Linux或Unix口令的方法分享
Jan 30 PHP
win7安装php框架Yii的方法
Jan 25 PHP
php自定义函数转换html标签示例
Sep 29 PHP
PHP云打印类完整示例
Oct 15 PHP
PHP中call_user_func_array回调函数的用法示例
Nov 26 PHP
PHP处理Ajax请求与Ajax跨域问题
Feb 13 PHP
PHP判断一个数组是另一个数组子集的方法详解
Jul 31 PHP
PHP分享图片的生成方法
Apr 25 PHP
Laravel find in set排序实例
Oct 09 PHP
Laravel框架实现定时Task Scheduling例子
Oct 22 PHP
PHP实现发送微博消息功能完整示例
Dec 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
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
PHP 字符串正则替换函数preg_replace使用说明
2011/07/15 PHP
PHP 万年历实现代码
2012/10/18 PHP
Smarty环境配置与使用入门教程
2016/05/11 PHP
php、java、android、ios通用的3des方法(推荐)
2016/09/09 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
2015/10/16 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
浅谈AngularJS中ng-class的使用方法
2016/11/11 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
微信小程序实现星星评价效果
2018/11/02 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
dpn网络的pytorch实现方式
2020/01/14 Python
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
事假请假条范文
2014/04/11 职场文书
优秀英文求职信范文
2015/03/19 职场文书
2015驻村干部工作总结
2015/04/07 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
Netty客户端接入流程NioSocketChannel创建解析
2022/03/25 Java/Android