网页游戏程序包括:
三个部分。
首先是数据流。 二是程序。 第三是艺术。
其中,数据流包括函数。 数据流只能体现在函数中。
数据流程比较麻烦,后面再讲。
例如,最简单的方式是销售和购买产品。
来实现这个功能。
那么你需要一个产品基本表、产品明细表、商店表、背包表。 如果扩展性更强的话,相应的双表是必不可少的。
表上的问题都很简单。 关键是这个东西是用来做什么的。 这样一来,就有了很多关于物品来源的数据,也有很多关于物品去向的数据。
最后,数据必须绕一圈。
绕圈子是一件困难的事情。 尤其是功能和道具较多的时候。 难度是2的n次方。
在绕圈之前,如果您对设计模式更有经验的话。 那么流程就可以简化。 难度从2的n次方变为1。
它只需要三个虚拟类:控制器、事件工厂和抽象道具工厂; 再加上定时器和任务编辑器这两个通用类。 也就是说,您可以构建一个强大且高度可扩展的网页游戏。
在网页游戏中,控制器几乎等同于页面。 使用任何模板技术都可以轻松对其进行处理。
事件工厂是一个抽象类。 所有的事件,如工作、战斗、移动等,都是由事件工厂生产的。 并且接口相同,方便控制器控制。 出厂模式。
抽象道具工厂是一个抽象类。 所有的道具,比如城市、地图、装备等,都是由抽象道具工厂生产的。 而且界面也是一样的,工厂模式,事件和道具的结合就是桥接模式。
艺术:
用户界面。 简单而美观的界面总是有好处的。 小图标。 道具、地图、设备。 一个类别至少有 10 个,对吗? 大约需要数百个。
程序分为5部分:
服务器计时器。 (C语言或者搭建自己的服务器)在定时循环中执行某段代码。 这段代码主要是根据数据库中的数据进行更新。 你可以找一个C语言程序员来做这件事。 对于C语言程序员来说,这个函数相当简单。 当然网页游戏开发,处理数据和操作数据库的具体判断需要你自己写。 只要让C程序员给你一段标准代码就可以了。 完全支持sql语句。
对于php来说,可以配置corn来实现。 但无论是什么操作系统,最短配置时间都是1分钟。 所以,如果要处理每秒刷新一次的情况。 你还需要一个专门的定时器程序来处理它,或者定期执行的PHP需要包含sleep()。 当然,即使有实时交互,服务器端也可以忽略。 只有客户端处理交互的双方。 js和ajax实现。
功能页面,功能功能。 主要是数据的存取、判断、数据的走向。
使用抽象类会更容易。 但子品类的爆炸是少不了的。
ajax 函数。 (可选)由某些需要伪实时的函数使用。
让游戏看起来更酷。 用它。
JavaScript 函数。 (可选)模拟客户端数据计算。 即页游的时间相关数据。 分为两部分。 其中一部分是真实数据,由服务器端的计时器计算得出。 另一部分只有初始值,用于客户端显示。 不需要实时同步,只需要模拟同步。
这里还包括一些漂亮的 UI 效果。 毕竟这是一个游戏。
数据库。 一堆基础数据表和详细数据表。 基础数据表:例如用户从1级到100级的初始属性值。 详细数据表:每个用户的具体属性。
在数据库上,尝试优化它。 如果该结构可以使用 1 个字节,则不要使用 2 个字节。
2. 详细示例。
仅仅讨论数据流是痛苦的。
不给出代码就讨论程序也是比较痛苦的。
这里使用的是php+mysql。 此外,此示例不使用类。 如果有足够的时间网页游戏开发材质材料,今年年底,我将提供一个简单的网页游戏代码和具有实时交互的核心类来说明使用设计模式的好处。
我们以一个超级简单的网页游戏来讨论吧。 与适当的代码配对。 应该有帮助。 有什么不足的地方请指出,这对我个人会有帮助。
我们不考虑游戏的可玩性、数值平衡性等。我们首先只考虑一个简单示例的实现。
那么页游的基本内容有哪些呢?
数据库:玩家、地图、城市、建筑物、武器、士兵。
功能:登陆、升级、个人战斗、士兵战斗、城市战斗、建造建筑物、制作武器、买卖道具。
(注:每个函数必须对应一张或多张数据表,上面数据库列出的只是基础中的基础。)
首先,有地图、城市和建筑物。
这里相信可以有多个地图,城市在地图上,建筑物在城市中。
地图图表
Map:Map_ID、X坐标、Y坐标、City_ID(城市ID)、描述。
其中Map_ID指的是地图的id。 不是自动编号。 一张地图就是一个Map_ID,可以重复。
城市列表
城市:City_ID、城市名称、城市所有者、城市等级、城市资源、描述。
建筑表
建筑:ID、City_ID、建筑名称、建筑等级、建筑功能。
其中,地图表确定了城市的位置,城市表确定了城市的相关数据和业主,建筑物表中的多条信息属于某个城市。
表创建完成后,会显示出来。
一个for循环。 只要把整个地图拿出来就可以了。
和普通网站上的新闻列表没有太大区别。 不同的是需要获取X坐标和Y坐标定位。 您可以使用 tabs 或 div。
代码
复制代码代码如下:
class Map //地图类
var $Map_ID;
函数 Map_bg_css($Map_ID) {
$this->Map_ID = $Map_ID;
mysql_select_db($db_name,$link);
$sql="select * from map where Map_ID='".$this->Map_ID."' limit 1";
$结果=mysql_query($sql,$link);
回声”
整个系统只用PHP进行编码,没有JS3D素材,没有正则表达式...纯PHP...其实其他的我也不知道哈哈...
下面是原始表单的html代码...
上传文件表格
复制代码代码如下:
表单中enctype="multipart/form-data"的含义是设置表单的MIME编码。 默认此编码格式为application/x-www-form-urlencoded,不能用于文件上传; 只有使用multipart/form-data时,才能完整传输文件数据并进行以下操作。 enctype="multipart/form -data" 为上传二进制数据; 表单中的值以二进制流形式传递。
这句话好像没什么用...我以为这样可以限制上传文件大小。 上传文件大小只能在php.ini中设置或者在后面上传的文件的脚本中设置...我是直接在程序中设置php的。 .ini 中的 upload_max_filesize=6M。
以下是上传过程
代码
复制代码代码如下:
$uploaddir="./map/";
$typearr=array("rar","zip","w3m","w3x");
$findstr=array("/",""," ",""); //过滤名称
$mapname=str_replace($findstr,'',($_POST['mapname']));
//获取扩展名
函数upfiletype($文件名){
$arr=爆炸('.',$文件名);
$a=count($arr)-1;
返回 $arr[$a];
//字符串是纯数字吗?
函数 isNo($str){
$intarr=array('1','2','3','4','5','6','7','8','9','0','.');
$a=str_replace($intarr,'',$str);
返回 ($a=="")?1:0;
//////控制窗口大小///////
函数 html(){
回声