PHP网页游戏学习之Xnova(ogame)源码解读(一)


Posted in PHP onJune 23, 2014

一、 引言

xnova(ogame)是一款世界上最火的战争策略类网页游戏之一,也是大部分同类网页游戏效仿的对象。你只需要网页浏览器,无需下载客户端就可进行的网络游戏。

Xnova是个怎么样的游戏?

你是一个跨星系的统治者,利用不同的战略扩大你的实力。你将从一个自己的星球上开始你的事业,在那里你用现有的资源建造一个你的经济和军事基础。通过科学 研究你获得达到新的、优势的技术的入口和新的武器系统。随着游戏的进行你将对多个星球移民,与其它的玩家联盟,与其它的玩家作生意或者发动战争。无论你想 要做什么,Xnova都可以让你办到!

Xnova是和现在很火的网页游戏OGame(银河帝国)相同类型、相同题材的游戏。OGame是国内众多三国题材的 webgame 的抄袭之对象(BTW,我讨厌三国)。

声明:我学习使用的源码是开源的项目,禁止用于商业用途,否则后果自负!

原始版权归Xnova开发团队所有!

铁船长版基于Xnova v0.8e修改!

此版已停止更新,我们不提供任何技术支持!

本站提供下载的是本系统的改进版!

本站源码下载地址:https://3water.com/codes/180759.html

我们学习的过程是按照程序执行顺序进行,在看源码之前,先学习了PHP的基础教程。

如果你不懂PHP请先学习PHP基础教程,或者有C的基础更佳!

最好安装PHP调试工具,我使用的是Zend studio 5,Zend Debugger 5,使用方法应该不难,而且这些用Google大神都可以找到。最后准备热茶一杯,就可以开工了。

二、 入口(index.php)

这个文件是游戏的入口,只有几行代码,功能一目了然:先判断config.php 的文件大小是否为零;如果是,就重定向到install/目录执行安装操作;否则就重定向到login.php显示登陆页面。源码如下:

if (filesize('config.php') == 0) {
 header('location: install/');
 exit();
}
header('location: login.php');
PHP 相关文章推荐
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 PHP
PHP print类函数使用总结
Jun 25 PHP
php简单实现查询数据库返回json数据
Apr 16 PHP
win10环境PHP 7 安装配置【教程】
May 09 PHP
深入理解php printf() 输出格式化的字符串
May 23 PHP
php求今天、昨天、明天时间戳的简单实现方法
Jul 28 PHP
谈谈PHP连接Access数据库的注意事项
Aug 12 PHP
ThinkPHP中session函数详解
Sep 14 PHP
php实现的二分查找算法示例
Jun 20 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 PHP
PHP命名空间(namespace)原理与用法详解
Dec 11 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
Jun 23 #PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
Jun 23 #PHP
ThinkPHP实现事务回滚示例代码
Jun 23 #PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
Jun 23 #PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
Jun 23 #PHP
ThinkPHP学习笔记(一)ThinkPHP部署
Jun 22 #PHP
ThinkPHP的URL重写问题
Jun 22 #PHP
You might like
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
2016/01/05 PHP
JS JavaScript获取Url参数,src属性参数
2021/03/09 Javascript
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
斜45度寻路实现函数
2009/08/20 Javascript
了解jQuery技巧来提高你的代码
2010/01/08 Javascript
JavaScript 类型的包装对象(Typed Wrappers)
2011/10/27 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
PHP结合jQuery实现的评论顶、踩功能
2015/07/22 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
JavaScript计算器网页版实现代码分享
2016/07/15 Javascript
vue获取dom元素注意事项
2017/12/28 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
如何优雅地在Node应用中进行错误异常处理
2019/11/25 Javascript
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
Django内容增加富文本功能的实例
2017/10/17 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
python tornado修改log输出方式
2019/11/18 Python
Python 从attribute到property详解
2020/03/05 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
2020/03/13 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
python 高阶函数简单介绍
2021/02/19 Python
投资合作协议书范本
2014/04/17 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
先进集体事迹材料范文
2014/12/25 职场文书
初中家长意见
2015/06/03 职场文书
如何理解及使用Python闭包
2021/06/01 Python
Django REST framework 限流功能的使用
2021/06/24 Python