2D客户端场景编辑器的开发工作分享

作者:小菜 更新时间:2025-02-26 点击数:
简介:前往文本编辑器专题 最近负责一款2D客户端场景编辑器的开发工作,获益良多。

现在就操作层面跟大家分享一下开发中的几个着重点。

1 事件响应模块:编辑器的操作极其复

【菜科解读】

前往文本编辑器专题 最近负责一款2D客户端场景编辑器的开发工作,获益良多。

现在就操作层面跟大家分享一下开发中的几个着重点。

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

主要的思路是设定编辑模式,然后在每个编辑模式下再有多个子模式。

例如建筑编辑模式,放置建筑子模式等。

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

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

2 场景对象层次:编辑器的操作几乎都是基于对象的,设定一个层次清晰的对象结构,在进行对象操作时则顺风顺水。

如:基本对象,建筑对象,建筑组对象等。

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

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

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

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

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

4 区域管理模块障碍区,遮挡区,安全区,各种自定义区域等等,都是属于区域操作范畴。

这种操作用得最多的就是画刷,所以画刷的设计好坏影响重大。

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

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

客户端,场景,编辑器,的,开发工作,分享,前往,

ASP.NET常用在线编辑器使用教程

ASP程序中FCKEditor在线编辑器的配置和精简方法

前往文本编辑器专题 (1)精简,"言多必失",文件多了也是一种隐患。

FCKEditor支持多种服务器脚本语言,实际使用的时候我们根本用不了那么多文件,我们要根据自己的需要对其进行精简。

对于ASP系统来说:FCKEditor根目录,仅保留"fckeditor.asp,fckconfig.js,fckeditor.js,fckpackager.xml,fckstyles.xml,fcktemplates.xml"这些文件以及editor目录。

删除示例目录"_samples"。

"fckeditor\editor\filemanager\connectors"目录下面仅保留"asp"目录,删除其它目录和文件。

(2)修改文件上传采用的脚本程序(语言)。

默认的FCKEditor文件上传程序为asp,如果是用在asp系统中,那就不用再修改了。

如果是用在PHP系统中的话,需要做如下修改,打开fckconfig.js 找到:var _FileBrowserLang ge = aspvar _QuickUploadLang ge = asp 改成:var _FileBrowserLang ge = phpvar _QuickUploadLang ge = php(3)开启文件上传,修改文件上传目录。

对于ASP系统来说:打开fckeditor\editor\filemanager\connectors\asp\config.asp启用文件上传:找到:ConfigIsEnabled = false改成:ConfigIsEnabled = tr设置上传存放目录:找到:ConfigUserFilesPath = "/admin/uppic/"改成:ConfigUserFilesPath = "自定义的路径"对于PHP系统来说:打开fckeditor/editor/filemanager/browser/default/connectors/php/config.php启用文件上传:找到:$Config[Enabled] = false改成:$Config[Enabled] = tr设置上传存放目录:找到:$Config[UserFilesPath] = /userfiles/改成:$Config[UserFilesPath] = 自定义的路径(4)修改上传文件命名方式。

FCKEditor上传文件,文件名采用原文件名,如果想采用自定义的文件命名方式(比如,随即名称),可以修改如下地方:对于ASP系统来说:打开fckeditor\sample\edit\editor\filemanager\connectors\asp\commands.asp找到:sFileName = SanitizeFileName( sFileName )将该句改为自定义的文件命名格式,例如:dim RndStrRandomizeRndStr = Cstr(Fix(9000*rnd()+1000)) 产生一个随机数sFileName =year(date)&month(Date)&day(Date)&hour(time)&minute(time)&second(time)&RndStr &"." & **tension对于PHP系统来说:打开fckeditor\editor\editor\filemanager\connectors\php\commands.php找到:$sOriginalFileName = $sFileName ;在该句前面加入:// 初始化种子 $sstr =split(" ",microtime(),5); $seed =$sstr[0]*10000; // 使用种子初始化随机数发生器 srand($seed); // 生成指定范围内的随机数 $random =rand(1000,10000);// 合成随即的文件名$sFileName = date("YmdHis", time()).$random.".".$**tension;(5)FCKEditor在程序中引用方式。

对于ASP系统来说:需要包含下面的头文件在编辑器所在的位置添加如下代码: %Dim oFCKeditorSet oFCKeditor = New FCKeditoroFCKeditor.BasePath = "/fckeditor/" 这个路径必须是相对于站点根目录的路径,设置错误编辑器将无法显示oFCKeditor.ToolbarSet="Default"oFCKeditor.Width = "98%"oFCKeditor.Height= "500px"oFCKeditor.Val = "" 设置默认值oFCKeditor.Create "shangpin_description" 编辑器的id,相当于input标签的name属性值,这里是shangpin_description%>对于PHP来说:在编辑器所在的位置添加如下代码: ?php incl?("fckeditor/fckeditor.php"); // 头文件$oFCKeditor = new FCKeditor("shangpin_description") ; // 编辑器的id,相当于input标签的name属性值,这里是shangpin_description$oFCKeditor->BasePath="/fckeditor/ " ; //设置FCKeditor路径 $oFCKeditor->ToolbarSet ="Default";$oFCKeditor->Width="98%";$oFCKeditor->Height="500px";$oFCKeditor->Val=""; // 设置默认值 $oFCKeditor->Create(); ?>(6)获取FCKEditor中的数据。

对于服务器端脚本程序来说,将"编辑器的id"当做input标签的name属性值来获取即可,例如:在ASP中reqst("shangpin_description"),在PHP中$_REQST["shangpin_description"]JS中用FCKeditorAPI.GetInstance(shangpin_description).GetXHTML(tr)得到shangpin_description对应的值ckEditor的ASP配置在网上找了好久终于找到了!O(∩_∩)O哈哈~一、使用方法:1、在页面中引入ckeditor核心文件ckeditor.js2、在使用编辑器的地方插入HTML控件如果是ASP.NET环境,也可用服务器端控件 下一篇:

加入收藏
               

2D客户端场景编辑器的开发工作分享

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录