From 99b1f9b671403aaf12120ca282f5222e0bd6e3bc Mon Sep 17 00:00:00 2001 From: oc Date: Thu, 19 Apr 2018 00:10:14 +0800 Subject: [PATCH] Rewind replay & compress icons --- README.md | 14 +++++++ index.html | 34 ++++++++-------- libs/actions.js | 6 ++- libs/control.js | 71 +++++++++++++++++++++++++++++----- libs/core.js | 23 ++++++++--- libs/events.js | 10 +++++ libs/loader.js | 17 ++++++++ libs/ui.js | 2 + libs/utils.js | 18 +++++++++ main.js | 50 +++++++++++++++--------- project/floors/sample1.js | 4 +- project/images/atk.png | Bin 207 -> 0 bytes project/images/book.png | Bin 464 -> 0 bytes project/images/def.png | Bin 276 -> 0 bytes project/images/experience.png | Bin 508 -> 0 bytes project/images/floor.png | Bin 995 -> 0 bytes project/images/fly.png | Bin 854 -> 0 bytes project/images/forward.png | Bin 662 -> 0 bytes project/images/hp.png | Bin 479 -> 0 bytes project/images/hpmax.png | Bin 481 -> 0 bytes project/images/icons.png | Bin 0 -> 17133 bytes project/images/load.png | Bin 1404 -> 0 bytes project/images/lv.png | Bin 1471 -> 0 bytes project/images/mdef.png | Bin 478 -> 0 bytes project/images/money.png | Bin 291 -> 0 bytes project/images/pause.png | Bin 269 -> 0 bytes project/images/play.png | Bin 340 -> 0 bytes project/images/rewind.png | Bin 689 -> 0 bytes project/images/save.png | Bin 1408 -> 0 bytes project/images/settings.png | Bin 1620 -> 0 bytes project/images/shop.png | Bin 2394 -> 0 bytes project/images/stop.png | Bin 239 -> 0 bytes project/images/toolbox.png | Bin 3041 -> 0 bytes project/images/up.png | Bin 863 -> 0 bytes 更新说明.txt | 10 ++--- 35 files changed, 199 insertions(+), 60 deletions(-) delete mode 100644 project/images/atk.png delete mode 100644 project/images/book.png delete mode 100644 project/images/def.png delete mode 100644 project/images/experience.png delete mode 100644 project/images/floor.png delete mode 100644 project/images/fly.png delete mode 100644 project/images/forward.png delete mode 100644 project/images/hp.png delete mode 100644 project/images/hpmax.png create mode 100644 project/images/icons.png delete mode 100644 project/images/load.png delete mode 100644 project/images/lv.png delete mode 100644 project/images/mdef.png delete mode 100644 project/images/money.png delete mode 100644 project/images/pause.png delete mode 100644 project/images/play.png delete mode 100644 project/images/rewind.png delete mode 100644 project/images/save.png delete mode 100644 project/images/settings.png delete mode 100644 project/images/shop.png delete mode 100644 project/images/stop.png delete mode 100644 project/images/toolbox.png delete mode 100644 project/images/up.png diff --git a/README.md b/README.md index de1e27fa..7c524299 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,20 @@ HTML5 canvas制作的魔塔样板,支持全平台游戏! ## 更新说明 +### 2018.4.19 V2.1 + +* [x] 编辑器添加新建和删除按钮;地图自动保存 +* [x] 录像支持倒退(录像播放中每20步存一个节点,最多30个) +* [x] Gif支持:可以作为楼层背景图或者使用显示动图事件 +* [x] 图片显示增加淡入淡出效果 +* [x] APP端也能下载或读取文件 +* [x] 地图临界显伤 +* [x] 单个存档清理 +* [x] 大数据魔塔的支持 +* [x] 进一步对JS文件和图标进行压缩 +* [x] 修复有时候无法输入ID的问题 +* [x] 其他细节优化 + ### 2018.3.17 V2.0.1 * [x] 道具使用效果的进一步分离 diff --git a/index.html b/index.html index bf967b87..32cb7037 100644 --- a/index.html +++ b/index.html @@ -43,43 +43,43 @@
- +

- +

- +

- +

- +

- +

- +

- +

- +

- +

@@ -94,13 +94,13 @@
- - - - - - - + + + + + + +

diff --git a/libs/actions.js b/libs/actions.js index c29d7f1a..af7224ef 100644 --- a/libs/actions.js +++ b/libs/actions.js @@ -35,11 +35,13 @@ actions.prototype.onkeyUp = function(e) { if (e.keyCode==27) // ESCAPE core.stopReplay(); else if (e.keyCode==90) // Z - core.rewindReplay(); + core.speedDownReplay(); else if (e.keyCode==88) // X - core.forwardReplay(); + core.speedUpReplay(); else if (e.keyCode==32) // SPACE core.triggerReplay(); + else if (e.keyCode==65) // A + core.rewindReplay(); return; } diff --git a/libs/control.js b/libs/control.js index a4db300b..6a0e9cda 100644 --- a/libs/control.js +++ b/libs/control.js @@ -1379,6 +1379,8 @@ control.prototype.startReplay = function (list) { core.status.replay.speed=1.0; core.status.replay.toReplay = core.clone(list); core.status.replay.totalList = core.clone(list); + core.status.replay.steps = 0; + core.status.replay.save = []; core.updateStatusBar(); core.drawTip("开始播放"); this.replay(); @@ -1409,7 +1411,7 @@ control.prototype.resumeReplay = function () { } ////// 加速播放 ////// -control.prototype.forwardReplay = function () { +control.prototype.speedUpReplay = function () { if (!core.status.replay.replaying) return; core.status.replay.speed = parseInt(10*core.status.replay.speed + 1)/10; if (core.status.replay.speed>3.0) core.status.replay.speed=3.0; @@ -1417,7 +1419,7 @@ control.prototype.forwardReplay = function () { } ////// 减速播放 ////// -control.prototype.rewindReplay = function () { +control.prototype.speedDownReplay = function () { if (!core.status.replay.replaying) return; core.status.replay.speed = parseInt(10*core.status.replay.speed - 1)/10; if (core.status.replay.speed<0.3) core.status.replay.speed=0.3; @@ -1432,10 +1434,47 @@ control.prototype.stopReplay = function () { core.status.replay.replaying=false; core.status.replay.pausing=false; core.status.replay.speed=1.0; + core.status.replay.steps = 0; + core.status.replay.save = []; core.updateStatusBar(); core.drawTip("停止播放并恢复游戏"); } +////// 回退 ////// +control.prototype.rewindReplay = function () { + if (!core.status.replay.replaying) return; + if (!core.status.replay.pausing) { + core.drawTip("请先暂停录像"); + return; + } + if (core.status.replay.animate) { + core.drawTip("请等待当前事件的处理结束"); + return; + } + if (core.status.replay.save.length==0) { + core.drawTip("无法再回到上一个节点"); + return; + } + + var save = core.status.replay.save; + var data = save.pop(); + core.loadData(data.data, function () { + core.status.replay = { + "replaying": true, + "pausing": true, + "animate": false, + "toReplay": data.replay.toReplay, + "totalList": data.replay.totalList, + "speed": data.replay.speed, + "steps": data.replay.steps, + "save": save + } + core.updateStatusBar(); + core.drawTip("成功回退到上一个节点"); + }) + +} + ////// 回放 ////// control.prototype.replay = function () { @@ -1449,6 +1488,18 @@ control.prototype.replay = function () { return; } + core.status.replay.steps++; + if (core.status.replay.steps%20==0) { + if (core.status.replay.save.length == 30) + core.status.replay.save.shift(); + core.status.replay.save.push({"data": core.saveData(), "replay": { + "totalList": core.clone(core.status.replay.totalList), + "toReplay": core.clone(core.status.replay.toReplay), + "speed": core.status.replay.speed, + "steps": core.status.replay.steps + }}); + } + var action=core.status.replay.toReplay.shift(); if (action=='up' || action=='down' || action=='left' || action=='right') { @@ -1696,7 +1747,7 @@ control.prototype.autosave = function (removeLast) { var x=null; if (removeLast) x=core.status.route.pop(); - core.saveData("autoSave"); + core.setLocalStorage("autoSave", core.saveData()) if (removeLast && core.isset(x)) core.status.route.push(x); } @@ -1708,7 +1759,7 @@ control.prototype.doSL = function (id, type) { core.drawTip('不能覆盖自动存档!'); return; } - if (core.saveData("save"+id)) { + if (core.setLocalStorage("save"+id, core.saveData())) { core.ui.closePanel(); core.drawTip('存档成功!'); if (id!="autoSave") { @@ -1868,7 +1919,7 @@ control.prototype.syncLoad = function () { } ////// 存档到本地 ////// -control.prototype.saveData = function(dataId) { +control.prototype.saveData = function() { var data = { 'floorId': core.status.floorId, 'hero': core.clone(core.status.hero), @@ -1888,7 +1939,7 @@ control.prototype.saveData = function(dataId) { } core.events.beforeSaveData(data); - return core.setLocalStorage(dataId, data); + return data; } ////// 从本地读档 ////// @@ -2133,15 +2184,15 @@ control.prototype.updateStatusBar = function () { core.statusBar.image.fly.src = core.statusBar.icons.stop.src; core.statusBar.image.fly.style.opacity = 1; - //core.statusBar.image.toolbox.src = core.statusBar.icons.forward.src; - core.statusBar.image.toolbox.style.opacity = 0; + core.statusBar.image.toolbox.src = core.statusBar.icons.rewind.src; + core.statusBar.image.toolbox.style.opacity = 1; core.statusBar.image.shop.style.opacity = 0; - core.statusBar.image.save.src = core.statusBar.icons.rewind.src; + core.statusBar.image.save.src = core.statusBar.icons.speedDown.src; core.statusBar.image.save.style.opacity = 1; - core.statusBar.image.load.src = core.statusBar.icons.forward.src; + core.statusBar.image.load.src = core.statusBar.icons.speedUp.src; core.statusBar.image.load.style.opacity = 1; core.statusBar.image.settings.style.opacity = 0; diff --git a/libs/core.js b/libs/core.js index a49f131d..ae680280 100644 --- a/libs/core.js +++ b/libs/core.js @@ -114,7 +114,9 @@ function core() { 'animate': false, // 正在某段动画中 'toReplay': [], 'totalList': [], - 'speed': 1.0 + 'speed': 1.0, + 'steps': 0, + 'save': [], }, // event事件 @@ -252,7 +254,6 @@ core.prototype.init = function (coreData, callback) { core.material.ground = new Image(); core.material.ground.src = "project/images/ground.png"; - core.loader.load(function () { console.log(core.material); // 设置勇士高度 @@ -842,6 +843,11 @@ core.prototype.clone = function (data) { return core.utils.clone(data); } +////// 裁剪图片 ////// +core.prototype.cropImage = function (image, size) { + return core.utils.cropImage(image, size); +} + ////// 格式化时间为字符串 ////// core.prototype.formatDate = function(date) { return core.utils.formatDate(date); @@ -893,11 +899,16 @@ core.prototype.resumeReplay = function () { } ////// 加速播放 ////// -core.prototype.forwardReplay = function () { - core.control.forwardReplay(); +core.prototype.speedUpReplay = function () { + core.control.speedUpReplay(); } ////// 减速播放 ////// +core.prototype.speedDownReplay = function () { + core.control.speedDownReplay(); +} + +////// 回退播放 ////// core.prototype.rewindReplay = function () { core.control.rewindReplay(); } @@ -973,8 +984,8 @@ core.prototype.syncLoad = function () { } ////// 存档到本地 ////// -core.prototype.saveData = function(dataId) { - return core.control.saveData(dataId); +core.prototype.saveData = function() { + return core.control.saveData(); } ////// 从本地读档 ////// diff --git a/libs/events.js b/libs/events.js index de85c843..823f8a43 100644 --- a/libs/events.js +++ b/libs/events.js @@ -123,6 +123,16 @@ events.prototype.lose = function (reason) { ////// 游戏结束 ////// events.prototype.gameOver = function (ending, fromReplay) { + // 清空图片和天气 + core.clearMap('animate', 0, 0, 416, 416); + while (core.dom.gif2.firstChild) + core.dom.gif2.removeChild(core.dom.gif2.firstChild); + core.clearMap('weather', 0, 0, 416, 416) + core.animateFrame.weather.type = null; + core.animateFrame.weather.level = 0; + core.animateFrame.weather.nodes = []; + core.setFg(null, 0); + // 下载录像 var confirmDownload = function () { core.ui.closePanel(); diff --git a/libs/loader.js b/libs/loader.js index e93571d1..d5271bb2 100644 --- a/libs/loader.js +++ b/libs/loader.js @@ -23,6 +23,9 @@ loader.prototype.setStartLoadTipText = function (text) { loader.prototype.load = function (callback) { + // 加载icons + core.loader.loadIcons(); + // 加载图片 core.loader.loadImages(core.materials, core.material.images, function () { // 加载png图片 @@ -40,6 +43,20 @@ loader.prototype.load = function (callback) { }) } +loader.prototype.loadIcons = function () { + + this.loadImage("icons.png", function (id, image) { + var images = core.cropImage(image); + for (var key in core.statusBar.icons) { + if (typeof core.statusBar.icons[key] == 'number') { + core.statusBar.icons[key] = images[core.statusBar.icons[key]]; + if (core.isset(core.statusBar.image[key])) + core.statusBar.image[key].src = core.statusBar.icons[key].src; + } + } + }); +} + loader.prototype.loadImages = function (names, toSave, callback) { if (names.length==0) { if (core.isset(callback)) callback(); diff --git a/libs/ui.js b/libs/ui.js index 0c9425de..89802697 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -20,6 +20,8 @@ ui.prototype.clearMap = function (map, x, y, width, height) { for (var m in core.canvas) { core.canvas[m].clearRect(0, 0, 416, 416); } + while (core.dom.gif.firstChild) + core.dom.gif.removeChild(core.dom.gif.firstChild); } else { core.canvas[map].clearRect(x||0, y||0, width||416, height||416); diff --git a/libs/utils.js b/libs/utils.js index 34ff3517..c2de471b 100644 --- a/libs/utils.js +++ b/libs/utils.js @@ -126,6 +126,24 @@ utils.prototype.clone = function (data) { return data; } +////// 裁剪图片 ////// +utils.prototype.cropImage = function (image, size) { + size = size||32; + var canvas = document.createElement("canvas"); + var context = canvas.getContext("2d"); + canvas.width = size; + canvas.height = size; + var ans = []; + for (var i=0;i7Ig8C){1Qzb-N1|8!CQ{go9aOZP7c6I>hQ=lHNFy}Mz?114JwC4mnO?0PJ3w-{G3-U^v%;%Do>@cWVd?a{)y>Z)f*4KUHL&uc&4S^ z#b!kzv$O&HwB_8)v4;^qfh9=fvBe0{$&P7czLd`njxg HN@xNAWNuR{ diff --git a/project/images/book.png b/project/images/book.png deleted file mode 100644 index b42b205f4ce775896056817aeb5ad56f2223afbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmV;>0WbcEP)2+^)*MPnO1+F@q@$!`Wn(lpG)qfM2n-0^R%G4W z-JEGcN=-^+W@KtOiTy}2!w`&LP0{-&;Qob|4LCx00an}Z99kvL_?|;cc*PF_rK&)BO3v@*#H^9U+>LO z@Zs4I`G=f8X7>IemncPX7^D=%#ki~R=T5nPdGdGrC8bn;xQ3u8o?5QWph@pbn|Up% zWZ^GFr0=I97DE8{>ir1MB8<4;`47Lye!{>gd|=HB@JcMnet>}cdt{uqjQ(gWxBiW; z_(`pAjI9C_(M=G1W&|9<;7*%zk@|TXm}Fm)A=ti$f;8jxXx?0Kh9CrI?XI)~-=^|l z*hA<-s7_UQZoCh|Pr^lbcO4R}Bf=Y}uRchr2ggEOmKduOD9e2VZiOSv^Bfl>%B?Yj zZ~Iz-BfQ)DT0uI^wIZ)^;QuKxDz25N_O+t=I{1-?XYvc0eHk=mGq1$}0000{D diff --git a/project/images/def.png b/project/images/def.png deleted file mode 100644 index 306f84c6682eda2f5259fc3766a2232710a5ee89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 276 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 diff --git a/project/images/hp.png b/project/images/hp.png deleted file mode 100644 index 49c16e74071744f5859ccf3dab1f26cbc1822ff4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 479 zcmV<50U-W~P)NCl@CdKfuAs$;rvxNlJx+LZPKb+SImDYHF<|#-z7B zfftfAP4k|Q4kZU3gm81udH24Y`%dT8)f>I97>RXM(9kIinKu zEVL(f6NCl@CdKfuAs$;rvxNlJx6g@Q#Rt*tdkOleA*MDdmr zxRQj_=Ec|IkOL1yZr(ZX-uupdsZ@dhriB9i9OTvB~$kPFlB1YOCe0ZLdd;s?x!6js*B^PA0VJbm*~#RWW-O40-%o5BLn&9Vf142R+Z(B-lO*vn;f0elPg zhCz#B@oe&Svw6G)kqwE}evZd9%VuMf;{fmpAs+~OJ4DQLIbrhWa@l7>aKdRieHF`& zEk$uR6iGWu$iRWl9!S^_9)F4$&I$YW%>dCsbgCRYbizEsJ+-Ia0LHnLcY(ED-+DJj zHb4ksG-+`1vFFb+nQJKmcq4B~KnRCJ%6+q6WbDRzC2887^w*Cl%+>0~n~i@ZPaqrL XC$uQy$ge$u00000NkvXXu0mjfa{bs= diff --git a/project/images/icons.png b/project/images/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..f0539b2423f92114c53e0b579712b336a0fa17b6 GIT binary patch literal 17133 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 JWt~$(69Cfge2V}8 literal 0 HcmV?d00001 diff --git a/project/images/load.png b/project/images/load.png deleted file mode 100644 index 26243925e3c10d0a2ef1b5323242a47d3aa8373b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1404 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 Z;=eRJ0L-IjR=ofK002ovPDHLkV1jrryaxaP diff --git a/project/images/mdef.png b/project/images/mdef.png deleted file mode 100644 index e22f498bbd82bd4f0b40862f2c1caf87046e8ada..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)3|Y0)_xTDGmTxhz*nF08&B#TPRTEdk`Qs4WK)MBFmv6Anf4az(S4#kP{)<4oFBy z;6TsUgt8T>4j^P66TWOlsRKyLrr5F>%o21AR+p9r!35M1olw!U8G1rP!9a`ucXWU; z%n`USN!b*eBQSggvm6AF9D&RCB$W{)IRFV$#Q_5z1p}T42Rs`NR6#^CplVS(>VU!E z0LH=K0LD=V3|Nzl63eO5C?&^osy53h@jX>KCX_gWDqS;j9YLkeDFef{+qvu~ZrAhO zxKS^4<3_XkjT`Nz*KW7j-?-E2cz$w{+Rx+rBQR2o`>BtLUL1lyEBp6o^Y4Z+N~A(J2r!1QdtDFj7t! zKidU?0lphjwWfLlzheTB#9_n`f?Ml?pwbToTBm>mQ~_wBr(n1>a~8A!mJGN7ygd*C z(0d9(0j%GFApouV<30!l(A)!DPq>dF2GHCCUEarkDw*n2M+QFSu-!eE=K&?4A7H3cLUS002ovPDHLkV1i|edPD#K diff --git a/project/images/pause.png b/project/images/pause.png deleted file mode 100644 index db4f3aeaa0ee0a3674d183ea267a924931c3ce7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@;M7UB8wRq z1UW&N@xaqX50GvsOx5MX8Jz329(+12m4;u@9SCpw%nxSuFB*;so%d3|1e$tT{N%{*_Wa37l? ztCH2Z{K)IvcS5NL)~d*9mrtYi(!L~%iy%#E;^2WRdk16{@7>FVdQ I&MBb@0PV0{ZU6uP diff --git a/project/images/play.png b/project/images/play.png deleted file mode 100644 index 34cfd72f6b7b9e66b4152f0f446cf068b81320f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@;M7UB8wRq z1UW&N@xaqX5XSs5-ZvO!&^_$FM?czeKV&0%+CMXs}Hu`yq=hnub z(=U%JR8&)Y7V5%n==?=cmHU8{?Xw06#Z&uPa)cP{)wfS=6FqSLrsJ%z29=b~jA+I` zF)~Y%Su5H~)-u$s>kwU(&gzku(x(x@_{S&i>XS?BH8g&H@ZVJ3)Ou7{MljjMcFzy% z2K{wQ_5Ii_6xupoeLtGmuvdFsO86higyVnxG}7Y#$ZaS+s`>9#LBmhSOHMw5%szgb dX3VHR$!l1;-9qYLY7x+L44$rjF6*2UngCmPeE|Rf diff --git a/project/images/rewind.png b/project/images/rewind.png deleted file mode 100644 index bafb4ee1bf9e142f54cb5fdc37dfeb110314ce9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 689 zcmV;i0#5yjP)YxY?aj2jm zbdf5E&`Yd1wz})!CL;Axunu*Qh!rY0C`dc`amgS~da137AmRr#2+}0?x>QMvNv}z; zp!tn|o_l}Kz5F>28foNzk5v1h<-Cf4oKRsrW1F|jab1qrs}K`|5x38rtX)7=qQlui zQ7!->K*L(t`XtdYQ;J2C=_a)GvcT#2qnyg@hKz0HOS$lJx_1t}S-(2z-2~|_eTf21 z8-d>fomXFP5iO1ZyGpngXlVsLRV83u%kIFKyNgPs5*JNo4~Q01KwFTxMi3~P^m-6| zj8eJW@dicpLC|toVgo%X4b6PXUQ}g(3im}q{u;~iMuFa-#Y+n8x#F#x{+b;H4lgxC zeYp;7UT%3=f!)rORm2}d*%WY2Rps!9J776e-9G*!2wYxM7HlAzeA$NjcYx-1~Gw;uwSA2=^6%y+ X0ob!c_$!*600000NkvXXu0mjfHSRF> diff --git a/project/images/save.png b/project/images/save.png deleted file mode 100644 index 325e36dc9e76d957cc23647c172404a1c551fde8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408 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 bs+Dp@&-HCeH)y{D+RNbS>gTe~DWM4fs}oDh diff --git a/project/images/toolbox.png b/project/images/toolbox.png deleted file mode 100644 index 7122eeeafc41b34f630ecb703c5b36ae6dcdc7eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3041 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 ANdN!< diff --git a/project/images/up.png b/project/images/up.png deleted file mode 100644 index 705189d0a45e311cf44ee7126709945e01e7f677..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 863 zcmV-l1EBngP)a=DVxMi`s1i zxTJ@-H0_NCqFr5u#ibxj1(*iTH8`CPc(?8Hwnv+8{P_8XPya;#8Qu^I#(Z_H`pHWG z84j2tx~ev9_Xf9b{dV9~S%(z>Vl}+Eu_5lSYm2zDwKH%|0U>4rPy+}w1E%j2FCR_) z`eNejq3@^qm)n3m`OY0Nf2cW9=qd(hYF5aTCft|_Xjtdn>Xy(byCJaEc2@TVezfC=zc=y$T%ZY1?WjL1#-yQJBe8Jt3 z0#}i!Rsui*824|u5a+6J*~Iz{9({lA=4m#0vOhUuwSj`sp31T6>e`6QT?!DQ3s4A0 zk-G$rvMLd3K;+H>So%HGxg;p1#(*;2b-hU>663Ek-KPfTN3AsA8hSE2H1hb~eGn0C zFo3{u=Agf~BG4gQ$TlEc&4#J-Neut|;LgJ-Jj*$$f`wP_F=zD(7W&3;VG+Q!UwlM+ zD`*k;9T)OQ5`QZ{sNU;%s$RG&=8U9~3Af-qr z#NHW@BDpRb5oR|4$@AR3ozF1MfRtv|t>k-#0vfXqK)e16&U20uIf%mLUQv*F{ubl^ ptW4{204QG)T>g3~{2$ip`WxoBbTmco!D|2j002ovPDHLkV1hfWi;4gM diff --git a/更新说明.txt b/更新说明.txt index b51b91de..12e752e9 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -1,16 +1,16 @@ -HTML5魔塔样板V2.0.2 +HTML5魔塔样板V2.1 编辑器添加新建和删除按钮;地图自动保存 √ -录像支持倒退(录像播放中每50步自动存档,最多存20个) +录像支持倒退(录像播放中每20步自动存档,最多存30个) √ Gif支持:可以作为楼层背景图或者使用显示动图事件 √ 图片显示增加淡入淡出效果 √ -APP端也能下载录像 +APP端也能下载或读取文件 √ 地图临界显伤 √ 单个存档清理 √ 大数据魔塔的支持(临界计算等) √ -进一步对JS文件进行压缩 √ +进一步对JS文件和图标进行压缩 √ 修复有时候无法输入ID的问题 √ -其他细节优化 +其他细节优化 √ -----------------------------------------------------------------------