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 相关文章推荐
smarty 缓存控制前的页面静态化原理
Mar 15 PHP
PHP中__FILE__、dirname与basename用法实例分析
Dec 01 PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 PHP
ThinkPHP中order()使用方法详解
Apr 19 PHP
CodeIgniter连贯操作的底层原理分析
May 17 PHP
Yii2框架使用计划任务的方法
May 25 PHP
PHP分享图片的生成方法
Apr 25 PHP
PHP实现登录验证码校验功能
May 17 PHP
laravel中的一些简单实用功能
Nov 03 PHP
laravel使用Faker数据填充的实现方法
Apr 12 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 PHP
php7 图形用户界面GUI 开发示例
Feb 22 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生成curl命令行的方法
2015/12/14 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
PHP7 list() 函数修改
2021/03/09 PHP
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
Javascript 判断Flash是否加载完成的代码
2010/04/12 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
js图片自动轮播代码分享(js图片轮播)
2014/05/06 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
jquery实现的动态回到顶部特效代码
2015/10/28 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
浅谈jQuery效果函数
2016/09/16 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
node学习记录之搭建web服务器教程
2017/02/16 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
使用async await 封装 axios的方法
2018/07/09 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
[00:08]DOTA2勇士令状等级奖励“天外飞星”
2019/05/24 DOTA
用Python代码来绘制彭罗斯点阵的教程
2015/04/03 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
Python实现判断并移除列表指定位置元素的方法
2018/04/13 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
详解python算法之冒泡排序
2019/03/05 Python
树莓派实现移动拍照
2019/06/22 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
波兰珠宝品牌:YES
2019/08/09 全球购物
计算机应用职专应届生求职信
2013/11/12 职场文书
迎七一演讲稿
2014/09/12 职场文书
个人合伙协议书范本
2014/10/14 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
违纪检讨书
2015/01/27 职场文书
建国大业电影观后感
2015/06/01 职场文书
2016年社区“6.26”禁毒日宣传活动总结
2016/04/05 职场文书
Redis唯一ID生成器的实现
2022/07/07 Redis