很久没做更新了。最近比较忙碌,手头的webgame也都放下。最近很想念我的小webgame了,回来继续写。
上篇玩玩webgame开发(3):自动战斗实现以及一些游戏细节(下)http://playfish.iteye.com/blog/267275
在高峰期时候发表的,结果被火速沉底了。。。汗
好了,不小心有说了好多废话,言归正传。
=============
数据结构设计是门高深的学问,而游戏的数据结构设计,那显然,也是一门很高深的学问(--||好废话。。),数据结构应该是整个游戏的骨架所在,而游戏数据平衡,(另一门高深的学问。。)跟这游戏的数据结构息息相关。本文只是从自己做的一个小游戏出发,简要的介绍一下我的一个简单的游戏的数据结构设计思路。
一个游戏几个基本的要素:
先从地图说起
游戏都在地图上进行的。地图的基本要素包括:地图元素(即每一个地图坐标格子上的元素),不可进入的位置等。其他的还包括一些基本信息。我的地图数据结构设计如下:
var defaultMap = {
mapName : '迷雾森林',
mapLevel: 1,
mapData : [
['f','t','t','t','t','t','w','f','r','f','w','f','r','f','r','f','t','t','r','f','r','t','t'],
['g','f','f','w','f','r','f','w','f','r','f','f','r','f','r','f','t','t','r','f','r','t','t'],
['g','f','f','f','f','w','f','r','f','w','f','r','f','r','f','r','t','t','r','f','r','t','t'],
['g','g','g','g','f','f','w','f','f','w','f','r','f','r','f','r','t','t','r','f','r','t','t'],
['g','f','f','f','r','f','w','f','r','f','w','f','r','f','f','r','t','t','r','f','r','t','t'],
['g','f','f','f','r','f','w','f','r','f','w','f','r','f','r','f','t','t','r','f','r','t','t'],
['g','f','f','f','r','r','f','w','f','f','w','f','r','f','r','f','t','t','r','f','r','t','t'],
['g','f','f','f','r','f','w','f','r','f','w','f','r','f','f','r','t','t','r','f','r','t','t'],
['g','f','f','f','f','w','f','r','f','w','f','r','f','r','f','r','t','t','r','f','r','t','t'],
['g','g','g','g','f','f','w','f','f','w','f','r','f','r','f','r','f','f','f','f','r','t','t'],
['g','f','f','f','r','f','w','f','r','f','w','f','f','f','f','f','f','f','f','f','r','t','t'],
['g','f','f','f','r','f','w','f','r','f','w','f','f','f','r','f','t','t','f','f','r','t','t'],
['g','f','f','f','r','r','f','w','f','f','w','f','r','f','r','f','t','t','r','f','r','t','t'],
['g','f','f','f','r','f','w','f','r','f','w','f','r','f','f','r','t','t','r','f','r','t','t'],
['g','f','f','f','f','w','f','r','f','w','f','r','f','r','f','r','t','t','r','f','r','t','t'],
['g','g','g','g','f','f','w','f','f','w','f','r','f','r','f','r','t','t','r','f','r','t','t'],
['g','f','f','f','r','f','w','f','r','f','w','f','r','f','f','r','t','t','r','f','r','t','t'],
['g','f','f','f','r','f','w','f','r','f','w','f','r','f','r','f','t','t','r','f','r','t','t'],
['g','f','f','f','r','r','f','w','f','f','w','f','r','f','r','f','t','t','r','f','r','t','t'],
['g','f','f','f','r','f','w','f','r','f','w','f','r','f','f','r','t','t','r','f','r','t','t'],
['g','f','f','f','r','f','w','f','f','w','f','r','f','r','f','r','t','t','r','f','r','t','t']
],
immovable: ['t','r']
};
这是个很简单的地图结构,包括的几个信息:地图名称,地图等级,地图元素,不可移动的位置。最后生成的展示效果如下(实际界面大很多,这里只是部分):
关于地图生成以及战争迷雾的部分,可以参看这个系列文章的前2篇。至于在地图上出现的物品,角色,怪物,建筑,并没有放在地图的数据里面,因为我觉得这是属于不同角色的数据,是应该分开的。这样的数据结构可以满足这样的需求:地图按照数据显示,对于指定的地图元素,角色不能进入。
接下来是游戏角色
var bobo = {
pos : {X:1, Y:1},
name : '拉拉',
money : 0, //新增加金钱
hp : 100, //full hp
curHp : 100, //current hp
level : 0,
exp : 19,
ap : 15, //attack power
def : 1, //defence
speed : 3,
luck : 15,
eyeshot : 2, //视野
type : 'bobo',
file : 'baozi',
img : $('<img class="bobo" title="拉拉" src="images/bobo/baozi/lv0/common.gif" />')
};
pos指角色在地图上的坐标,其它的就是一些常见的数据了,包括名称,金钱,满血hp,当前的hp,等级,经验,攻击,防御,速度,幸运,视野,其它的类型,文件,img属于我自己定义的一些结构,用于获得特定状态下的包子的图片。
设计一个这样的数据结构并不难,自己爱怎么设定就怎么设定,呵呵。不过关键的问题在于数据平衡,设置得很bt的数据可以开始玩的时候很爽,但是一结束玩家马上就会失去兴趣,所以,合适的数值以及成长曲线才会保证耐玩度。我个人是喜欢很小的数据,这样玩家自己计算的时候简单,而且数据平衡比较好做。我平时很经常玩一些war3的rpg,只要进去里面的人物或者是物品设定数字都是按百的,alt+q。顺便废话一下我喜欢的元素魔法之战这个。
怪物的数据设计
var monsters = [
{
id : 0,
name : '青蛙',
hp : 30,
curHp : 30, //记录怪物当前血量,战斗结束后自动回复为hp
level : 0,
exp : 5,
ap : 10,
def : 0,
speed : 5,
luck : 15,
type : 'monster',
file : 'qingwa',
items : [ //掉落物品
{id:0,drop:0.4}
],
img : $('<img class="monster" title="青蛙" src="images/monster/qingwa/lv0/common.gif" />')
}
];
和游戏角色的数据结构不同,它有额外添加1个id以及一个items数组,id表示怪物类型,因为怪物会在地图上出现很多不同种类的怪物,通过id来区分不同的怪物。items数组,表示这个怪物身上有多大的概率会掉那种类型物品。items数组内的id表示物品的id。
一个怪物需要分布在地图上的各个位置,我目前觉得最简单的方式就是:
var mapMonsters = [
{
pos : { X:1, Y:8 },
id : 0
},
{
pos : { X:5, Y:5 },
id : 0
},
{
pos : { X:4, Y:5 },
id : 0
}
];
哪个位置上哪个怪物,简单明了。
====未完待续,明晚继续
- 大小: 86.2 KB
- 大小: 5.1 KB
分享到:
相关推荐
资源名称:webgame网页游戏开发设计简明教程 中文WORD版本文档是webgame网页游戏开发设计简明教程;webgame程序构成:三大部分。第一是数据流程。第二是程序。第三是美术。其中,数据流程包括了功能。也只有在功能中...
webgame开发简明教程 这篇是挺实用的教程, 不过有些观点还是值得商榷 我觉得服务器定时器用计划任务调用脚本就可以实现,比如linux下用crontab定时执行某个php脚本,更新数据就可以。 研究所有点缺乏资料啊。讨论...
webgame asp javascript在线游戏 源代码
网页游戏开发设计简明教程 webgame程序构成: 第一是数据流程。第二是程序。第三是美术。
给大家贡献一遍比较好的webgame引擎开发学习的资料,希望对webgame开发的人有帮助。
webgame源码 其中包括人物行走 地图动态加载等重要模块 非常适合FLEX WEBGAME 开发人员 提高技术 提高开发技巧 webgame的大概框架分层,是学习网页游戏开发非常好的资源!
对网页游戏的开发方向有一定分析。 一、游戏模式。 Ogame模式 Ebs模式 mmRPG模式 经营模式 二、网页游戏六大系统。 经济系统、消耗系统、消息系统是基础。 任务系统、公会系统是升华。 地图系统是容器。 三、如何...
webgame程序构成: 三大部分。 第一是数据流程。第二是程序。第三是美术。 其中,数据流程包括了功能。也只有在功能中才能体现数据流程。 数据流程相当的麻烦,后面再讨论。 比如最简单的卖买产品。 要实现这...
适合初学者! 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gogo313/archive/2009/02/24/3933603.aspx
WebGame的AS端开发心得 理解AS项目全局结构 打造相对通用的游戏代码库和开发流程
斗地主大家都喜欢玩,保证无措,运行正常!在自己的网站上运行测试过!!!喜欢的朋友尽情下吧!!!
侠域网页游戏WebGame源代码侠域网页游戏WebGame源代码
于2007夏天完成的一个不完整的webgame引擎 还没有完成AI部分
FLASH WEBGame 多人游戏社区(源码+服务端) 服务端SGS RPG地图 多人同步FLASH社区
WebGame 网页游戏是现在比较流行的娱乐,这个教程可以引导您学习制作开发网页游戏。文件是 exe 的视频的!
WebGame大型游戏架构书
注释很详细,但由于文字功底不好,可能有些注释描述有些问题,还请谅解。如有疑问可加QQ290717270,一起讨论。
一份简单的网页游戏开发入门教程。 包括整理的思路,和少部分代码。 初学者能很好入门,高手也会有所启发吧。
webgame游戏后台管理程序
本文档主要讲述的是网页游戏开发入门教程(webgame+design);希望对大家的学习会有帮助;感兴趣的朋友可以过来看看