From f67b88d38e0524991171fa78baab808282de40ba Mon Sep 17 00:00:00 2001 From: YouWei Zhao Date: Mon, 19 Feb 2018 12:07:49 +0800 Subject: [PATCH 1/2] add tab for appendPic --- _server/css/editor.css | 2 +- _server/css/editor_mode.css | 2 +- _server/editor_mode.js | 7 ++++-- editor.html | 48 +++++++++++++------------------------ 4 files changed, 24 insertions(+), 35 deletions(-) diff --git a/_server/css/editor.css b/_server/css/editor.css index 13e74df7..b878cc2f 100644 --- a/_server/css/editor.css +++ b/_server/css/editor.css @@ -190,7 +190,7 @@ body{ .gameCanvas { position: absolute; } -#dataSelection{ +#dataSelection , .appendSelection{ position: absolute; /* top:0; left:320px; */ diff --git a/_server/css/editor_mode.css b/_server/css/editor_mode.css index f5ffcdab..a3c232c9 100644 --- a/_server/css/editor_mode.css +++ b/_server/css/editor_mode.css @@ -13,7 +13,7 @@ .leftTab > :first-child{margin-top:5px;} .leftTab > :last-child{margin-bottom:5px;} -#left99 { +#left1 { left: 5px; top: 650px; width: 435px; diff --git a/_server/editor_mode.js b/_server/editor_mode.js index 4bbe60af..39984f46 100644 --- a/_server/editor_mode.js +++ b/_server/editor_mode.js @@ -3,8 +3,7 @@ function editor_mode(){ 'loc':'left2', 'emenyitem':'left3', 'floor':'left4', - 'tower':'left5', - 'test':'left99' + 'tower':'left5' } this._ids={} this.dom={} @@ -23,6 +22,8 @@ editor_mode.prototype.init = function(callback){ if (Boolean(callback))callback(); } +///////////////////////////////////////////////////////////////////////////// + editor_mode.prototype.objToTable = function(obj,commentObj){ var outstr=["\n条目注释值\n"]; var guids=[]; @@ -242,6 +243,8 @@ editor_mode.prototype.tower = function(callback){ if (Boolean(callback))callback(); } +///////////////////////////////////////////////////////////////////////////// + editor_mode.prototype.listen = function(callback){ var newIdIdnum = document.getElementById('newIdIdnum'); diff --git a/editor.html b/editor.html index e408332d..4a8f4d6b 100644 --- a/editor.html +++ b/editor.html @@ -32,39 +32,25 @@ -
-
-

测试用标签页

-
- - - - - - - - - -
条目注释aaa
变量名字符串可能显示不全但是hover时通过span title='xxx'来显示高度以此为准
此处是利用slice实现
-
-
- - - - - - - -
条目注释
-
-
- +
+

追加素材

+

+ + + +

+
+ + + +
+
1
+
  2
+
    3
+
      4
-
+

地图选点

0,0

From e436a5f995f6da58e05faedffbbce2f5c50b1f70 Mon Sep 17 00:00:00 2001 From: YouWei Zhao Date: Wed, 21 Feb 2018 18:09:19 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E7=B4=A0=E6=9D=90?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _server/editor_mode.js | 144 ++++++++++++++++++++++++++++++++++++++++- editor.html | 9 +-- libs/core.js | 10 ++- 3 files changed, 156 insertions(+), 7 deletions(-) diff --git a/_server/editor_mode.js b/_server/editor_mode.js index 39984f46..017937b1 100644 --- a/_server/editor_mode.js +++ b/_server/editor_mode.js @@ -10,6 +10,7 @@ function editor_mode(){ this.actionList=[]; this.mode=''; this.info={}; + this.appendPic={}; } editor_mode.prototype.init = function(callback){ @@ -254,7 +255,7 @@ editor_mode.prototype.listen = function(callback){ var idnum = parseInt(newIdIdnum.children[1].value); editor_file.changeIdAndIdnum(editor,id,idnum,editor_mode.info,function(err){ if(err){printe(err);throw(err)} - printf('添加id的idnum成功'); + printe('添加id的idnum成功,请F5刷新编辑器'); }); } } @@ -291,6 +292,147 @@ editor_mode.prototype.listen = function(callback){ }); } + var ratio=1; + var appendPicCanvas = document.getElementById('appendPicCanvas'); + var bg = appendPicCanvas.children[0]; + var source = appendPicCanvas.children[1]; + var picClick = appendPicCanvas.children[2]; + var sprite = appendPicCanvas.children[3]; + var appendPicSelection = document.getElementById('appendPicSelection'); + + var selectAppend = document.getElementById('selectAppend'); + var selectAppend_str=[]; + ["terrains", "animates", "enemys", "items", "npcs"].forEach(function(image){ + selectAppend_str.push(["\n'].join('')); + }); + selectAppend.innerHTML=selectAppend_str.join(''); + selectAppend.onchange = function(){ + var value = selectAppend.value; + editor_mode.appendPic.imageName = value; + var img = editor.material.images[value]; + editor_mode.appendPic.toImg = img; + var num = ~~img.width/32; + editor_mode.appendPic.num = num; + editor_mode.appendPic.index = 0; + var selectStr = ''; + for(var ii=0;ii=num)editor_mode.appendPic.index=ii+1-num; + else editor_mode.appendPic.index++; + editor_mode.appendPic.selectPos[ii]=pos; + appendPicSelection.children[ii].style=[ + 'left:',pos.x*32,'px;', + 'top:',pos.y*32,'px' + ].join(''); + } + + var appendConfirm = document.getElementById('appendConfirm'); + appendConfirm.onclick = function(){ + var sprited = sprite.getContext('2d'); + //sprited.drawImage(img, 0, 0); + var height = editor_mode.appendPic.toImg.height; + var sourced = source.getContext('2d'); + for(var ii=0,v;v=editor_mode.appendPic.selectPos[ii];ii++){ + var imgData=sourced.getImageData(v.x*32,v.y*32,32,32); + sprited.putImageData(imgData,ii*32,height); + } + var imgbase64 = sprite.toDataURL().split(',')[1]; + fs.writeFile('./project/images/'+editor_mode.appendPic.imageName+'.png',imgbase64,'base64',function(err,data){ + if(err){printe(err);throw(err)} + printe('追加素材成功,请刷新编辑器'); + }); + } + if (Boolean(callback))callback(); } diff --git a/editor.html b/editor.html index 4a8f4d6b..1617c843 100644 --- a/editor.html +++ b/editor.html @@ -35,15 +35,16 @@

追加素材

- + - +

-
+
+ -
+
1
  2
    3
diff --git a/libs/core.js b/libs/core.js index 64c4cdef..cf3d76dd 100644 --- a/libs/core.js +++ b/libs/core.js @@ -215,6 +215,11 @@ core.prototype.init = function (coreData) { core.platform.fileReader.onload = function () { var content=core.platform.fileReader.result; var obj=null; + if(content.slice(0,4)==='data'){ + if (core.isset(core.platform.successCallback)) + core.platform.successCallback(content); + return; + } try { obj=JSON.parse(content); if (core.isset(obj)) { @@ -4949,7 +4954,7 @@ core.prototype.isset = function (val) { } ////// 读取一个本地文件内容 ////// -core.prototype.readFile = function (success, error) { +core.prototype.readFile = function (success, error, readType) { // step 0: 不为http/https,直接不支持 if (!core.platform.isOnline) { @@ -4976,7 +4981,8 @@ core.prototype.readFile = function (success, error) { core.platform.errorCallback(); return; } - core.platform.fileReader.readAsText(core.platform.fileInput.files[0]); + if(!readType)core.platform.fileReader.readAsText(core.platform.fileInput.files[0]); + else core.platform.fileReader.readAsDataURL(core.platform.fileInput.files[0]); core.platform.fileInput.value = ''; } }