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 相关文章推荐
通过文字传递创建的图形按钮
Oct 09 PHP
WINXP下apache+php4+mysql
Nov 25 PHP
PHP文件上传原理简单分析
May 29 PHP
PHP的一个基础知识 表单提交
Jul 04 PHP
php 发送带附件邮件示例
Jan 23 PHP
PHP图片处理之图片背景、画布操作
Nov 19 PHP
php判断表是否存在的方法
Jun 18 PHP
PHP 验证身份证是否合法的函数
Feb 09 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
May 23 PHP
phpMyAdmin通过密码漏洞留后门文件
Nov 20 PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 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模板解析类实例
2015/07/09 PHP
php获取给定日期相差天数的方法分析
2017/02/20 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
PHP无限极分类函数的实现方法详解
2017/04/15 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
2016/02/24 Javascript
原生JS实现Ajax跨域请求flask响应内容
2017/10/24 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
对vue.js中this.$emit的深入理解
2018/02/23 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
python中Genarator函数用法分析
2015/04/08 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Python循环语句中else的用法总结
2016/09/11 Python
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
财务工作个人求职的自我评价
2013/12/19 职场文书
财务管理职业生涯规划书
2014/02/26 职场文书
高中教师评语大全
2014/04/25 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
2014年团委工作总结
2014/11/13 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python
python常见的占位符总结及用法
2021/07/02 Python
python实现学员管理系统(面向对象版)
2022/06/05 Python
云服务器部署 Web 项目的实现步骤
2022/06/28 Servers