您的位置: 首页 > 技术文档 > 多媒体制作 > 45度地图编辑器及游戏开发心得
Flash CS4 3d效果以及骨骼工具 回到列表 正式使用Flash Builder 4 Beta
 45度地图编辑器及游戏开发心得

作者:wxsr 时间: 2009-06-04 文档类型:原创 来自:蓝色理想

第 1 页 45度地图编辑器及游戏开发心得 [1]
第 2 页 45度地图编辑器及游戏开发心得 [2]
第 3 页 45度地图编辑器及游戏开发心得 [3]

好下边偶说说45度编辑器的一些心得:

1.为什么要开发一个编辑器?

很多开发者都没有先考虑为什么我要开发一个地图编辑器,往往都是因为大家都有,所以就去开发。很多游戏都有自己的专属编辑器,就像魔兽的那个让人仰望的编辑器,里边包含了诸如地图编辑器,事件编辑器,战役编辑器,AI编辑器,环境编辑器等等诸多编辑器,可以说,一个好的编辑器是一个成功的游戏必不可少的组成。我们开发一个编辑器是为了方便我们往后的开发工作,而不是只为了别人都有而开发。当你明确了你的游戏需求后,然后需要针对性的构架你的编辑工具。
编辑器的功能要根据我们要开发的游戏的需求来决定其功能。还有的就是我们要注意在编写这样的一个工具时要把算法及相关逻辑整理分层好。因为编辑器毕竟是编辑器,我们到了实际游戏场景中还是得再次把原先的逻辑重新实现的,所以编辑器的结构及代码的分离效果很大层度上影响到你往后的开发。

2.一些主要用到的算法。

先说说45度视角下比较难写好的深度消隐算法。相信很多开发者都疼为此头疼,不知道如何入手,。网上有很多类似的深度算法,但很多效果都不如人意,特别是用y轴判断的那种,事实上这种算法不准确是因为他忽略了一些物品不等长的情况,当然如果你的游戏里的场景物品都是等大的战棋类游戏,这种算法足以你使用了,但事实上一般的45度游戏或者社区都是很多不等大物品组成的。一些案例,想this6,他们所采取的方法是预先在fla里手动排序好物品的深度,然后再场景中通过交换深度的方法来实现井深的效果,这种方法不不好之处在于,一些动态场景因为没有预先编辑好一个准确的深度,那样交换深度的小过将是很差的,从this6前期的自定义用户场景我们也可以看出这方面的效果,这也是他们现在采用缩小场景避免排序不准确带来的不好体验的一个必然选择。还有就像摩尔,摩尔前期也是典型的只根据y轴排序的一个案例,效果相当不好,但后期做了优化。

要井深准确,无法就两个方向走。要们将所有物品统一大小,然后用y轴排序,要么就是写出一套使用性广泛的深度算法。

这里我推荐的方法也是现在很多大型2.5d游戏使用的方法。2分法。2分在在于其能准确的将一个空间的物品的井深层次很好的划分出来,我们只要通过一个物品为参照物先划分出前后两个空间然后递归刚才的方法即可,下边是本人之前写的消隐算法就是以2分法为基础写的一套45度视角下的消隐算法,http://wxsr.blogbus.com/logs/32001884.html
我们在说说A星算法,其实作为游戏a星算法是不一定要用到的,我们要根据游戏的实际需求来开发我们的游戏才是明智之举很多情况下我们可以选择性的将寻路部分放到小地图上而不是大地图上,那样有利于我们整个游戏的效率及执行,我们可以采用两点间直线移动,移动到不可走地方就停止移动的方法来取代a星。这样做效果也是不错的。而且效率也高。可以把节省下来的消耗应用到别的地方去。再说回a星,as3效率的提高,现在写a星算法只要不是很冗余效率基本上都到60-90毫秒左右就可以完成了a星算法无非就是计算最优值寻找出一条能通道目的地的树状结构,然后通过倒退法,得到一条最优的路径。优化的方法很多想我之前说的2分法就是一种,我们也可以用4叉树,2查树等方法优化效率,无论是4叉树还是2叉树,目的都是在缩小路径的范围,当然前提我们都需要预先建树,注意的是,我们在场景深度算法放也可以用到4叉树,2查树这是我的改良版a星算法:
http://wxsr.blogbus.com/logs/32550422.html,这个算法没有哟娜跟传统的2维数组作为存储容器,而用哈希表,这样做的好处在于查询跟修改的速度要比2维数组的快而且方便。

最后说说资源管理跟事件管理。只所以要这个主要是因为flash的内存管理问题,太分散的管理方式无疑对我们管理内存几会有相当大的麻烦统一的内存管理有利于解决因为资源加载带来的诸多麻烦,还有就是事件的统一注册管理有人可能认为这样做很麻烦没必要,但我想说的是,在flash中往往因为我们很容易忽略的问题导致了我们的内存不能回收,当中最为显著的就是对象的时间引用上。很多人抱怨as的弱引用,事实上只要你看过帮助文档就不不能看出其实弱引用是没问题的,因为你的对象没有注销,所以事件必然还在引用状态。加载的资源应为都是一次性的所以基本都是很容易删除的。但一些类的实例因为引用的多指向导致了内存不能回收,这正是我说统一管理事件注册的用意,因为那样我们才可以更好的完全删除之前所注册的所有事件的。一般我们御载一个场景我建议都注销下原先的所有幀听,那样才能保证事件不在被引用,从而保证内存可以顺利回收。

再补充一点就是,资源及源码的加密。
现在一般的做法都是混淆编辑好的swf的2进制源码,然后在场景中再还原。
这里提供下我的处理方法:
http://wxsr.blogbus.com/logs/32850824.html

经典论坛交流
http://bbs.blueidea.com/thread-2931698-1-1.html

本文链接:http://www.blueidea.com/tech/multimedia/2009/6767.asp 

出处:蓝色理想
责任编辑:bluehearts

上一页 45度地图编辑器及游戏开发心得 [2] 下一页

◎进入论坛RIA设计与应用版块参加讨论

相关文章 更多相关链接
Flash CS4 3d效果以及骨骼工具
Flash Builder 4 快速入门
正式使用Flash Builder 4 Beta
Flash推广专家Andrew Shorten访谈
Nokia全球创新精英挑战赛
关键字搜索 常规搜索 推荐文档
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule
>> 分页 首页 前页 后页 尾页 页次:3/31个记录/页 转到 页 共3个记录

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2