From 628d7eeafadc281961b055546c7b4735de9fb8a5 Mon Sep 17 00:00:00 2001 From: YouWei Zhao Date: Sat, 10 Mar 2018 20:07:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=BF=87=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 已经无法工作的editor_file_test.html 旧版的blockly 已经无效的2.0diff --- 2.0diff.md | 149 --- _server/README.md | 38 + _server/blockly/motaActionBlocks.js | 1129 --------------------- _server/blockly/motaActionBlockyDemo.html | 557 ---------- _server/editor_file_test.html | 46 - main.js | 2 +- test_main_init_mode.html | 152 --- 7 files changed, 39 insertions(+), 2034 deletions(-) delete mode 100644 2.0diff.md delete mode 100644 _server/blockly/motaActionBlocks.js delete mode 100644 _server/blockly/motaActionBlockyDemo.html delete mode 100644 _server/editor_file_test.html delete mode 100644 test_main_init_mode.html diff --git a/2.0diff.md b/2.0diff.md deleted file mode 100644 index 2eb12662..00000000 --- a/2.0diff.md +++ /dev/null @@ -1,149 +0,0 @@ -# v2.0目前的改动 - -## 总体上: - -部分重构了运行时 -+ 把`libs`中的数据分离出来保存为类似json的js文件,分离后的数据进一步分离为纯数据和注释两部分 -+ 更改目录结构,分离后的`libs`一般无需修改,把数据楼层文件声音图片放入`project`目录中 - * 需要相应的修改地图生成器和js压缩工具 -+ 设置了三个模式`play|editor|replay`在`editor`模式关闭了部分动画,并且角色无法行动 - -重构editor -+ 重命名为`editor.html` - * 需要相应的修改本地服务的按钮打开的网址,为了兼容,临时加了个内容为``的`drawMapGUI.html` -+ 不再独立的导入数据和画图,尽可能的通过`main.init('editor')`复用代码 -+ 能够在本地服务器环境中直接修改`project`中的数据,即全GUI下做塔 -+ 把`editor`的代码拆到了`_server/editor.js`中 -+ 添加了`_server/css/editor_mode.css`存放编辑模式有关的样式 -+ 添加了`_server/editor_mode.js`存放编辑模式的实现 - -## 具体: - -### main.js -用户修改内容转移到了`project/data.js`中 - -把事件监听打包成了`main.prototype.listen` - -`main.listen`和`main.init`改为在`index.html`中执行 - -添加了`main.prototype.loadPureData`,在`main.init`中先加载纯数据再加载`libs` - -### core.js -`core.drawMap`中`editor`模式下不再画图,而是生成画图的函数提供给`editor` - -`editor`模式下`GlobalAnimate`可以独立的选择是否播放 - -`core.playBgm`和`core.playSound`中非`play`模式不再播放声音 - -`core.show`和`core.hide`中非`play`模式不再进行动画而是立刻完成并执行回调 - -`editor`模式不执行`core.resize` - -### data.js -数据转移到了`project/data.js`中 - -注释转移到了`project/data.comment.js`中 - -### enemy.js,items.js,maps.js,icons.js -数据转移到了`project`下的同名文件中 - -注释转移到了`project/comment.js`中 - -### editor_file.js -提供了以下函数进行楼层`map`数组相关的操作 -```javascript -editor.file.getFloorFileList -editor.file.loadFloorFile -editor.file.saveFloorFile -editor.file.saveFloorFileAs -``` -5个编辑模式有关的查询 -```javascript -editor.file.editItem('redJewel',[],function(a){console.log(a)}); -editor.file.editEnemy('redBat',[],function(a){console.log(a)}); -editor.file.editLoc(2,0,[],function(a){console.log(a)}); -editor.file.editFloor([],function(a){console.log(a)}); -editor.file.editTower([],function(a){console.log(a)}); -``` -5个编辑模式有关的编辑 -```javascript -editor.info={images: "terrains", y: 9}; -editor.file.changeIdAndIdnum('yellowWall2',16,editor.info,function(a){console.log(a)}); -editor.file.editItem('book',[["change","['items']['name']","怪物手册的新名字"]],function(a){console.log(a)}); -editor.file.editEnemy('redBat',[['change',"['atk']",20]],function(a){console.log(a)}); -editor.file.editLoc(2,6,[["change","['afterBattle']",null]],function(a){console.log(a)}); -editor.file.editFloor([["change","['title']",'样板 33 层']],function(a){console.log(a)}); -editor.file.editTower([["change","['values']['lavaDamage']",200]],function(a){console.log(a)}); -``` - -### editor_mode.js -4个生成表格并绑定事件的函数 -```javascript -editor.mode.loc(); -editor.mode.emenyitem(); -editor.mode.floor(); -editor.mode.tower(); -``` -切换模式 -```javascript -editor.mode.onmode(''); -editor.mode.onmode('loc'); -editor.mode.onmode('emenyitem'); -editor.mode.onmode('floor'); -editor.mode.onmode('tower'); -``` -在切换模式时,改动才会保存到文件,并且需要刷新页面使得`editor`能看到改动 - -表格的`onchange`的实现中,获得当前模式的方式.不注意的话,修改`index.html`中页面的结构,会被坑 -```javascript -var node = thisTr.parentNode; -while (!editor_mode._ids.hasOwnProperty(node.getAttribute('id'))) { - node = node.parentNode; -} -editor_mode.onmode(editor_mode._ids[node.getAttribute('id')]); -``` -### drawMapGUI.html -重命名为`editor.html` - -把`editor`的代码拆到了`_server/editor.js`中 - -以`display:none`的形式引入了`index.html`的`dom`,修改了原来的`.gameCanvas #ui #data`等的名字以避免冲突 - -通过`main.init('editor')`加载数据,移除了原有的`editor.loadjs`等 - -背景层如果未设置`editor.bgY`则通过运行时中的代码画背景 - -`editor.updateMap`中只画未定义快的报错,其他的由运行时中的代码完成 - -`editor.ids[0] = 0; editor.indexs[0]=[0];` - -添加了`editor.changeFloor`用于切换楼层 - -### 注释的特殊指令 -``` -$range(evalstr:thiseval)$end - 限制取值范围,要求修改后的eval(evalstr)为true -$leaf(evalstr:thiseval)$end - 强制指定为叶节点,如果eval(evalstr)为true - -//以下几个中选一个 [ -$select(evalstr)$end - 渲染成 -$textarea(evalstr)$end - 渲染成