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

现在就操作层面跟大家分享一下开发中的几个着重点。
1 事件响应模块:编辑器的操作极其复
【菜科解读】
现在就操作层面跟大家分享一下开发中的几个着重点。
1 事件响应模块:编辑器的操作极其复杂,如果没有一个清晰的事件分发流程,操作逻辑处理起来苦不堪言。
主要的思路是设定编辑模式,然后在每个编辑模式下再有多个子模式。
例如建筑编辑模式,放置建筑子模式等。
每个子模式下都有独立的鼠标和键盘响应处理,如左右键 按下弹起的响应等。
这样在进行逻辑处理时,先判断当前编辑器所处的模式和子模式,即可进入对应的响应操作。
2 场景对象层次:编辑器的操作几乎都是基于对象的,设定一个层次清晰的对象结构,在进行对象操作时则顺风顺水。
如:基本对象,建筑对象,建筑组对象等。
3 撤销重做模块:如果没有做过类似的编辑器,应该不会知道这模块的重要性。
在实际的场景编辑中,常常编辑错了,就想恢复到编辑前的状态,这就用到了撤销重做的功能。
主要的实现思路是,当某个操作需要撤销重做功能时,注册一个对应的操作类,保存相关的参数,有对应的执行函数和撤销函数。
然后再把这操作保存到一个全局的操作列表,每执行一次撤销操作则把最后一个操作从操作列表中移除。
因为记录了相关的数据,所以在执行撤销操作时,可以完全回到编辑前的状态。
4 区域管理模块障碍区,遮挡区,安全区,各种自定义区域等等,都是属于区域操作范畴。
这种操作用得最多的就是画刷,所以画刷的设计好坏影响重大。
5 编辑态文件即除了包括游戏数据外还保存很多游戏不用的数据,但在编辑器使用过程中却带来很多便利。
比较有利的一点是很多情况下导出的场景配置文件是二进制文件,所以看不到每个版本的修改内容,这时可通过对应的编辑态文件来对比。
客户端,场景,编辑器,的,开发工作,分享,前往,
ASP.NET常用在线编辑器使用教程
ASP程序中FCKEditor在线编辑器的配置和精简方法
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环境,也可用服务器端控件 下一篇: