浅谈场景编辑器开发

系统 1652 0

         最近负责一款2D客户端场景编辑器的开发工作,获益良多。现在就操作层面跟大家分享一下开发中的几个着重点。

         1 事件响应模块:

         编辑器的操作极其复杂,如果没有一个清晰的事件分发流程,操作逻辑处理起来苦不堪言。

         主要的思路是设定编辑模式,然后在每个编辑模式下再有多个子模式。例如建筑编辑模式,放置建筑子模式等。

         每个子模式下都有独立的鼠标和键盘响应处理,如左右键 按下弹起的响应等。

         这样在进行逻辑处理时,先判断当前编辑器所处的模式和子模式,即可进入对应的响应操作。

          2 场景对象层次:

         编辑器的操作几乎都是基于对象的,设定一个层次清晰的对象结构,在进行对象操作时则顺风顺水。如:基本对象,建筑对象,建筑组对象等。

         3 撤销重做模块:

         如果没有做过类似的编辑器,应该不会知道这模块的重要性。

         在实际的场景编辑中,常常编辑错了,就想恢复到编辑前的状态,这就用到了撤销重做的功能。

         主要的实现思路是,当某个操作需要撤销重做功能时,注册一个对应的操作类,保存相关的参数,有对应的执行函数和撤销函数。

         然后再把这操作保存到一个全局的操作列表,每执行一次撤销操作则把最后一个操作从操作列表中移除。

         因为记录了相关的数据,所以在执行撤销操作时,可以完全回到编辑前的状态。

          4 区域管理模块

         障碍区,遮挡区,安全区,各种自定义区域等等,都是属于区域操作范畴。这种操作用得最多的就是画刷,所以画刷的设计好坏影响重大。

          5 编辑态文件

         即除了包括游戏数据外还保存很多游戏不用的数据,但在编辑器使用过程中却带来很多便利。

         比较有利的一点是很多情况下导出的场景配置文件是二进制文件,所以看不到每个版本的修改内容,这时可通过对应的编辑态文件来对比。

浅谈场景编辑器开发


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论