From 13c208c491853792cbeacd4bd089d781604d6da0 Mon Sep 17 00:00:00 2001 From: oc Date: Sat, 8 Sep 2018 13:30:28 +0800 Subject: [PATCH 1/7] Fix Bug --- libs/events.js | 4 +++- libs/ui.js | 2 +- project/images/hero - 副本.png | Bin 0 -> 5393 bytes project/images/hero.png | Bin 5393 -> 7572 bytes 4 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 project/images/hero - 副本.png diff --git a/libs/events.js b/libs/events.js index 73497b87..0d63148c 100644 --- a/libs/events.js +++ b/libs/events.js @@ -1195,7 +1195,9 @@ events.prototype.changeFloor = function (floorId, stair, heroLoc, time, callback // 更改BGM if (core.isset(core.floors[floorId].bgm)) { - core.playBgm(core.floors[floorId].bgm); + var bgm = core.floors[floorId].bgm; + if (bgm instanceof Array) bgm = bgm[0]; + core.playBgm(bgm); } // 不存在事件时,更改画面色调 diff --git a/libs/ui.js b/libs/ui.js index a365323f..ea88e6ed 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -529,7 +529,7 @@ ui.prototype.drawTextBox = function(content) { core.clearMap("ui", content_left, content_top - 18, validWidth, top + height - content_top + 10); core.setAlpha('ui', textAttribute.background[3]); core.setFillStyle('ui', core.arrayToRGB(textAttribute.background)); - core.fillRect("ui", content_left, content_top - 18, validWidth, top + height - content_top + 10); + core.fillRect("ui", content_left, content_top - 18, validWidth, top + height - content_top + 11); core.setAlpha('ui', textAttribute.text[3]); core.setFillStyle('ui', core.arrayToRGB(textAttribute.text)); diff --git a/project/images/hero - 副本.png b/project/images/hero - 副本.png new file mode 100644 index 0000000000000000000000000000000000000000..d81650af2da35ef63dda2c4e75d88ef448576534 GIT binary patch literal 5393 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 Date: Sat, 8 Sep 2018 13:30:46 +0800 Subject: [PATCH 2/7] Fix Bug --- project/images/hero - 副本.png | Bin 5393 -> 0 bytes project/images/hero.png | Bin 7572 -> 5393 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 project/images/hero - 副本.png diff --git a/project/images/hero - 副本.png b/project/images/hero - 副本.png deleted file mode 100644 index d81650af2da35ef63dda2c4e75d88ef448576534..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5393 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 Date: Wed, 12 Sep 2018 18:25:50 +0800 Subject: [PATCH 3/7] Fix SetFg --- editor-mobile.html | 6 +++--- editor.html | 6 +++--- index.html | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/editor-mobile.html b/editor-mobile.html index 0bcf257f..67b8d3bb 100644 --- a/editor-mobile.html +++ b/editor-mobile.html @@ -398,10 +398,10 @@

-
-
-
+
+
+
diff --git a/editor.html b/editor.html index de7bb4c7..ef349dcc 100644 --- a/editor.html +++ b/editor.html @@ -383,10 +383,10 @@

-
-
-
+
+
+
diff --git a/index.html b/index.html index 6beb83f3..9e394221 100644 --- a/index.html +++ b/index.html @@ -108,10 +108,10 @@

-
-
-
+
+
+
From 3d188025ca13e057f227ea125748bf14ee19b56a Mon Sep 17 00:00:00 2001 From: oc Date: Thu, 13 Sep 2018 00:22:20 +0800 Subject: [PATCH 4/7] set bg/fg map --- _server/blockly/MotaAction.g4 | 6 ++-- libs/control.js | 6 ---- libs/maps.js | 52 +++++++++++++++++++++++++++++------ libs/ui.js | 15 ++++------ styles.css | 2 +- 5 files changed, 54 insertions(+), 27 deletions(-) diff --git a/_server/blockly/MotaAction.g4 b/_server/blockly/MotaAction.g4 index db191884..d3d4d957 100644 --- a/_server/blockly/MotaAction.g4 +++ b/_server/blockly/MotaAction.g4 @@ -629,7 +629,7 @@ helpUrl : https://ckcz123.github.io/mota-js/#/event?id=changefloor%EF%BC%9A%E6%A default : ["MT1","0","0",null,500] colour : this.dataColor DirectionEx_List_0 = DirectionEx_List_0 && (', "direction": "'+DirectionEx_List_0+'"'); -Int_0 = Int_0 ?(', "time": '+Int_0):''; +Int_0 = (Int_0!=='') ?(', "time": '+Int_0):''; var floorstr = ''; if (PosString_0 && PosString_1) { floorstr = ', "loc": ['+PosString_0+','+PosString_1+']'; @@ -1474,8 +1474,10 @@ ActionParser.prototype.parse = function (obj,type) { obj.floorType=obj.floorId; delete obj.floorId; } + if (!this.isset(obj.time)) obj.time=500; return MotaActionBlocks['changeFloor_m'].xmlText([ - obj.floorType||'floorId',obj.floorId,obj.stair||'loc',obj.loc[0],obj.loc[1],obj.direction,obj.time||0,!this.isset(obj.portalWithoutTrigger) + obj.floorType||'floorId',obj.floorId,obj.stair||'loc',obj.loc[0],obj.loc[1],obj.direction, + obj.time,!this.isset(obj.portalWithoutTrigger) ]); case 'point': diff --git a/libs/control.js b/libs/control.js index a59adf5a..ff75214c 100644 --- a/libs/control.js +++ b/libs/control.js @@ -2933,8 +2933,6 @@ control.prototype.resize = function(clientWidth, clientHeight) { rules: { width: (canvasWidth - SPACE*2) + unit, height:(canvasWidth - SPACE*2) + unit, - top: (canvasTop + SPACE) + unit, - right: SPACE + unit, } }, { @@ -2942,8 +2940,6 @@ control.prototype.resize = function(clientWidth, clientHeight) { rules: { width: (canvasWidth - SPACE*2) + unit, height:(canvasWidth - SPACE*2) + unit, - top: (canvasTop + SPACE) + unit, - right: SPACE + unit, } }, { @@ -2951,8 +2947,6 @@ control.prototype.resize = function(clientWidth, clientHeight) { rules: { width: (canvasWidth - SPACE*2) + unit, height:(canvasWidth - SPACE*2) + unit, - top: (canvasTop + SPACE) + unit, - right: SPACE + unit, } }, { diff --git a/libs/maps.js b/libs/maps.js index ba9653c8..f206ab25 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -340,20 +340,54 @@ maps.prototype.drawBlock = function (block, animate, dx, dy) { } } +////// 背景/前景图块的绘制 ////// +maps.prototype.drawBgFgMap = function (floorId, canvas, name) { + var width = core.floors[floorId].width || 13; + var height = core.floors[floorId].height || 13; + + var groundId = core.floors[floorId].defaultGround || "ground"; + var blockIcon = core.material.icons.terrains[groundId]; + var blockImage = core.material.images.terrains; + + var getMapArray = function (name) { + var arr = core.floors[floorId][name+"map"] || []; + for (var x = 0; x < width; x++) { + for (var y = 0; y < height; y++) { + arr[y] = arr[y] || []; + if (core.hasFlag(name + "_" + floorId + "_" + x + "_" + y)) arr[y][x] = 0; + else arr[y][x] = core.getFlag(name + "v_" + floorId + "_" + x + "_" + y, arr[y][x] || 0); + } + } + return arr; + } + var arr = getMapArray(name); + for (var x = 0; x < width; x++) { + for (var y = 0; y < height; y++) { + if (name=='bg') + canvas.drawImage(blockImage, 0, blockIcon * 32, 32, 32, x * 32, y * 32, 32, 32); + if (arr[y][x]>0) { + var block = core.maps.initBlock(x, y, arr[y][x]); + if (core.isset(block.event)) { + var id = block.event.id, cls = block.event.cls; + if (cls == 'autotile') + core.drawAutotile(canvas, arr, block, 32, 0, 0); + else + canvas.drawImage(core.material.images[cls], 0, core.material.icons[cls][id] * 32, 32, 32, x * 32, y * 32, 32, 32); + } + } + } + } + +} + ////// 绘制某张地图 ////// maps.prototype.drawMap = function (mapName, callback) { core.clearMap('all'); core.removeGlobalAnimate(null, null, true); var drawBg = function(){ - var groundId = core.floors[mapName].defaultGround || "ground"; - var blockIcon = core.material.icons.terrains[groundId]; - var blockImage = core.material.images.terrains; - - for (var x = 0; x < core.bigmap.width; x++) { - for (var y = 0; y < core.bigmap.height; y++) { - core.canvas.bg.drawImage(blockImage, 0, blockIcon * 32, 32, 32, x * 32, y * 32, 32, 32); - } - } + + core.maps.drawBgFgMap(mapName, core.canvas.bg, "bg"); + core.maps.drawBgFgMap(mapName, core.canvas.event2, "event2"); var images = []; if (core.isset(core.floors[mapName].images)) { diff --git a/libs/ui.js b/libs/ui.js index ea88e6ed..1fcf48e2 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -1826,15 +1826,9 @@ ui.prototype.drawThumbnail = function(floorId, canvas, blocks, x, y, size, cente tempCanvas.canvas.height = tempHeight; tempCanvas.clearRect(0, 0, tempWidth, tempHeight); - var groundId = core.floors[floorId].defaultGround || "ground"; - var blockIcon = core.material.icons.terrains[groundId]; - var blockImage = core.material.images.terrains; - // background - for (var j=0;j Date: Thu, 13 Sep 2018 14:46:49 +0800 Subject: [PATCH 5/7] Update canvas fg -> damage --- docs/api.md | 2 +- docs/personalization.md | 7 ++-- index.html | 1 + libs/actions.js | 6 ++-- libs/control.js | 74 ++++++++++++++++++++--------------------- libs/core.js | 6 ++-- styles.css | 4 +++ 7 files changed, 53 insertions(+), 47 deletions(-) diff --git a/docs/api.md b/docs/api.md index 1da8bef5..c7ced584 100644 --- a/docs/api.md +++ b/docs/api.md @@ -162,7 +162,7 @@ core.trigger(x, y) [异步] core.clearMap(mapName) 清空某个画布图层。 -mapName可为'bg', 'event', 'fg', 'event2', 'hero', 'animate', 'weather', 'ui', 'data', 'all'之一。 +mapName可为'bg', 'event', 'hero', 'event2', 'fg', 'damage', 'animate', 'weather', 'ui', 'data', 'all'之一。 如果mapName为'all',则为清空所有画布;否则只清空对应的画布。 diff --git a/docs/personalization.md b/docs/personalization.md index ae7dfd47..97dcbdbf 100644 --- a/docs/personalization.md +++ b/docs/personalization.md @@ -10,11 +10,12 @@ HTML5魔塔是使用画布(canvas)来绘制,存在若干个图层,它们 所有图层从低往高依次如下: -- bg:背景层;绘制地面素材,或者作为背景的图片素材 +- bg:背景层;绘制背景图层素材bgmap,和背景贴图 - event:事件层;所有事件(道具、墙壁、NPC、怪物等)都绘制在这一层进行处理 - hero:勇士层;主要用来绘制勇士 -- event2:事件2层;本层主要用来绘制48x32的图片素材的上半部分(避免和勇士错位),也可以用来绘制该层的前景图片素材 -- fg:显伤层;主要用来绘制怪物显伤和领域显伤 +- event2:事件2层;本层主要用来绘制48x32的图片素材的上半部分(避免和勇士错位) +- fg:前景层;绘制前景图层素材fgmap,和前景贴图 +- damage:显伤层;主要用来绘制怪物显伤和领域显伤 - animate:动画层;主要用来绘制动画。showImage事件绘制的图片也是在这一层。 - weather:天气层;主要用来绘制天气(雨/雪) - curtain:色调层;用来控制当前楼层的画面色调 diff --git a/index.html b/index.html index 9e394221..c97c9a8e 100644 --- a/index.html +++ b/index.html @@ -117,6 +117,7 @@ + diff --git a/libs/actions.js b/libs/actions.js index 01619092..de4ca739 100644 --- a/libs/actions.js +++ b/libs/actions.js @@ -1574,19 +1574,19 @@ actions.prototype.clickSwitchs = function (x,y) { break; case 3: core.flags.displayEnemyDamage=!core.flags.displayEnemyDamage; - core.updateFg(); + core.updateDamage(); core.setLocalStorage('enemyDamage', core.flags.displayEnemyDamage); core.ui.drawSwitchs(); break; case 4: core.flags.displayCritical=!core.flags.displayCritical; - core.updateFg(); + core.updateDamage(); core.setLocalStorage('critical', core.flags.displayCritical); core.ui.drawSwitchs(); break; case 5: core.flags.displayExtraDamage=!core.flags.displayExtraDamage; - core.updateFg(); + core.updateDamage(); core.setLocalStorage('extraDamage', core.flags.displayExtraDamage); core.ui.drawSwitchs(); break; diff --git a/libs/control.js b/libs/control.js index ff75214c..bd1db38c 100644 --- a/libs/control.js +++ b/libs/control.js @@ -1437,7 +1437,7 @@ control.prototype.snipe = function (snipes) { var animateCurrent = 0; var animateTime = 0; - core.canvas.fg.textAlign = 'left'; + core.canvas.damage.textAlign = 'left'; var animate=window.setInterval(function() { @@ -1455,22 +1455,22 @@ control.prototype.snipe = function (snipes) { var nowX = 32*x+dx, nowY = 32*y+dy; // 清空上一次 - core.clearMap('fg', nowX-2*scan[direction].x, nowY-2*scan[direction].y, 32, 32); + core.clearMap('damage', nowX-2*scan[direction].x, nowY-2*scan[direction].y, 32, 32); core.canvas.event.clearRect(nowX-2*scan[direction].x, nowY-2*scan[direction].y, 32, 32); core.canvas.event2.clearRect(nowX-2*scan[direction].x, nowY-2*scan[direction].y-32, 32, 32) core.drawBlock(snipe.block, animateCurrent, dx, dy); if (core.hasItem('book')) { - // drawFG - core.setFillStyle('fg', '#000000'); - core.canvas.fg.fillText(snipe.damage, nowX + 2, nowY + 30); - core.canvas.fg.fillText(snipe.damage, nowX, nowY + 30); - core.canvas.fg.fillText(snipe.damage, nowX + 2, nowY + 32); - core.canvas.fg.fillText(snipe.damage, nowX, nowY + 32); + // drawDamage + core.setFillStyle('damage', '#000000'); + core.canvas.damage.fillText(snipe.damage, nowX + 2, nowY + 30); + core.canvas.damage.fillText(snipe.damage, nowX, nowY + 30); + core.canvas.damage.fillText(snipe.damage, nowX + 2, nowY + 32); + core.canvas.damage.fillText(snipe.damage, nowX, nowY + 32); - core.setFillStyle('fg', snipe.color); - core.canvas.fg.fillText(snipe.damage, nowX + 1, nowY + 31); + core.setFillStyle('damage', snipe.color); + core.canvas.damage.fillText(snipe.damage, nowX + 1, nowY + 31); } }) @@ -1589,18 +1589,18 @@ control.prototype.setFg = function(color, time, callback) { } ////// 更新全地图显伤 ////// -control.prototype.updateFg = function () { +control.prototype.updateDamage = function () { if (!core.isset(core.status.thisMap) || !core.isset(core.status.thisMap.blocks)) return; // 更新显伤 var mapBlocks = core.status.thisMap.blocks; - core.clearMap('fg'); + core.clearMap('damage'); // 没有怪物手册 if (!core.hasItem('book')) return; - core.setFont('fg', "bold 11px Arial"); + core.setFont('damage', "bold 11px Arial"); var hero_hp = core.status.hero.hp; if (core.flags.displayEnemyDamage || core.flags.displayCritical) { - core.canvas.fg.textAlign = 'left'; + core.canvas.damage.textAlign = 'left'; for (var b = 0; b < mapBlocks.length; b++) { var x = mapBlocks[b].x, y = mapBlocks[b].y; if (core.isset(mapBlocks[b].event) && mapBlocks[b].event.cls.indexOf('enemy')==0 @@ -1637,14 +1637,14 @@ control.prototype.updateFg = function () { damage += "+"; } - core.setFillStyle('fg', '#000000'); - core.canvas.fg.fillText(damage, 32 * x + 2, 32 * (y + 1) - 2); - core.canvas.fg.fillText(damage, 32 * x, 32 * (y + 1) - 2); - core.canvas.fg.fillText(damage, 32 * x + 2, 32 * (y + 1)); - core.canvas.fg.fillText(damage, 32 * x, 32 * (y + 1)); + core.setFillStyle('damage', '#000000'); + core.canvas.damage.fillText(damage, 32 * x + 2, 32 * (y + 1) - 2); + core.canvas.damage.fillText(damage, 32 * x, 32 * (y + 1) - 2); + core.canvas.damage.fillText(damage, 32 * x + 2, 32 * (y + 1)); + core.canvas.damage.fillText(damage, 32 * x, 32 * (y + 1)); - core.setFillStyle('fg', color); - core.canvas.fg.fillText(damage, 32 * x + 1, 32 * (y + 1) - 1); + core.setFillStyle('damage', color); + core.canvas.damage.fillText(damage, 32 * x + 1, 32 * (y + 1) - 1); } // 临界显伤 @@ -1653,13 +1653,13 @@ control.prototype.updateFg = function () { if (critical.length>0) critical=critical[0]; critical = core.formatBigNumber(critical[0]); if (critical == '???') critical = '?'; - core.setFillStyle('fg', '#000000'); - core.canvas.fg.fillText(critical, 32 * x + 2, 32 * (y + 1) - 2 - 10); - core.canvas.fg.fillText(critical, 32 * x, 32 * (y + 1) - 2 - 10); - core.canvas.fg.fillText(critical, 32 * x + 2, 32 * (y + 1) - 10); - core.canvas.fg.fillText(critical, 32 * x, 32 * (y + 1) - 10); - core.setFillStyle('fg', '#FFFFFF'); - core.canvas.fg.fillText(critical, 32 * x + 1, 32 * (y + 1) - 1 - 10); + core.setFillStyle('damage', '#000000'); + core.canvas.damage.fillText(critical, 32 * x + 2, 32 * (y + 1) - 2 - 10); + core.canvas.damage.fillText(critical, 32 * x, 32 * (y + 1) - 2 - 10); + core.canvas.damage.fillText(critical, 32 * x + 2, 32 * (y + 1) - 10); + core.canvas.damage.fillText(critical, 32 * x, 32 * (y + 1) - 10); + core.setFillStyle('damage', '#FFFFFF'); + core.canvas.damage.fillText(critical, 32 * x + 1, 32 * (y + 1) - 1 - 10); } } @@ -1667,20 +1667,20 @@ control.prototype.updateFg = function () { } // 如果是领域&夹击 if (core.flags.displayExtraDamage) { - core.canvas.fg.textAlign = 'center'; + core.canvas.damage.textAlign = 'center'; for (var x=0;x0) { damage = core.formatBigNumber(damage); - core.setFillStyle('fg', '#000000'); - core.canvas.fg.fillText(damage, 32 * x + 17, 32 * (y + 1) - 13); - core.canvas.fg.fillText(damage, 32 * x + 15, 32 * (y + 1) - 15); - core.canvas.fg.fillText(damage, 32 * x + 17, 32 * (y + 1) - 15); - core.canvas.fg.fillText(damage, 32 * x + 15, 32 * (y + 1) - 13); + core.setFillStyle('damage', '#000000'); + core.canvas.damage.fillText(damage, 32 * x + 17, 32 * (y + 1) - 13); + core.canvas.damage.fillText(damage, 32 * x + 15, 32 * (y + 1) - 15); + core.canvas.damage.fillText(damage, 32 * x + 17, 32 * (y + 1) - 15); + core.canvas.damage.fillText(damage, 32 * x + 15, 32 * (y + 1) - 13); - core.setFillStyle('fg', '#FF7F00'); - core.canvas.fg.fillText(damage, 32 * x + 16, 32 * (y + 1) - 14); + core.setFillStyle('damage', '#FF7F00'); + core.canvas.damage.fillText(damage, 32 * x + 16, 32 * (y + 1) - 14); } } } @@ -2740,7 +2740,7 @@ control.prototype.updateStatusBar = function () { core.statusBar.image.settings.src = core.statusBar.icons.settings.src; } - core.updateFg(); + core.updateDamage(); } ////// 屏幕分辨率改变后重新自适应 ////// diff --git a/libs/core.js b/libs/core.js index ee47c077..0f010eec 100644 --- a/libs/core.js +++ b/libs/core.js @@ -73,7 +73,7 @@ function core() { scale: 1.0, } this.bigmap = { - canvas: ["bg", "event", "event2", "fg", "route"], + canvas: ["bg", "event", "event2", "fg", "damage", "route"], offsetX: 0, // in pixel offsetY: 0, width: 13, // map width and height @@ -799,8 +799,8 @@ core.prototype.setFg = function(color, time, callback) { } ////// 更新全地图显伤 ////// -core.prototype.updateFg = function () { - core.control.updateFg(); +core.prototype.updateDamage = function () { + core.control.updateDamage(); } ////// 测试是否拥有某个特殊属性 ////// diff --git a/styles.css b/styles.css index c64fdb36..bae823ee 100644 --- a/styles.css +++ b/styles.css @@ -280,6 +280,10 @@ span#poison, span#weak, span#curse, span#pickaxe, span#bomb, span#fly { z-index: 60; } +#damage { + z-index: 65; +} + #animate { z-index: 70; } From 8bc24c50c3502ec2f965519cd9d18c9ac48152bb Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Thu, 13 Sep 2018 14:52:41 +0800 Subject: [PATCH 6/7] Foreground Image: event2 -> fg --- libs/maps.js | 11 ++++++----- libs/ui.js | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/libs/maps.js b/libs/maps.js index f206ab25..8d572ee6 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -249,7 +249,7 @@ maps.prototype.canMoveHero = function(x,y,direction,floorId) { var nowBlock = core.getBlock(x,y,floorId); if (nowBlock!=null){ - nowId = nowBlock.block.event.id; + var nowId = nowBlock.block.event.id; var nowIsArrow = nowId.slice(0, 5).toLowerCase() == 'arrow'; if(nowIsArrow){ var nowArrow = nowId.slice(5).toLowerCase(); @@ -267,7 +267,7 @@ maps.prototype.canMoveHero = function(x,y,direction,floorId) { var nx = x+scan[direction].x, ny = y+scan[direction].y; var nextBlock = core.getBlock(nx,ny); if (nextBlock!=null){ - nextId = nextBlock.block.event.id; + var nextId = nextBlock.block.event.id; // 遇到单向箭头处理 var isArrow = nextId.slice(0, 5).toLowerCase() == 'arrow'; if(isArrow){ @@ -387,7 +387,7 @@ maps.prototype.drawMap = function (mapName, callback) { var drawBg = function(){ core.maps.drawBgFgMap(mapName, core.canvas.bg, "bg"); - core.maps.drawBgFgMap(mapName, core.canvas.event2, "event2"); + core.maps.drawBgFgMap(mapName, core.canvas.fg, "fg"); var images = []; if (core.isset(core.floors[mapName].images)) { @@ -419,9 +419,9 @@ maps.prototype.drawMap = function (mapName, callback) { } } else if (t[3]==1) - core.canvas.event2.drawImage(image, 32*dx, 32*dy, image.width, image.height); + core.canvas.fg.drawImage(image, 32*dx, 32*dy, image.width, image.height); else if (t[3]==2) { - core.canvas.event2.drawImage(image, 0, 0, image.width, image.height-32, + core.canvas.fg.drawImage(image, 0, 0, image.width, image.height-32, 32*dx, 32*dy, image.width, image.height-32); core.canvas.bg.drawImage(image, 0, image.height-32, image.width, 32, 32*dx, 32*dy + image.height - 32, image.width, 32); @@ -469,6 +469,7 @@ maps.prototype.drawMap = function (mapName, callback) { core.clearMap('bg'); core.clearMap('event'); core.clearMap('event2'); + core.clearMap('fg'); drawBg(); drawEvent(); core.setGlobalAnimate(core.values.animateSpeed); diff --git a/libs/ui.js b/libs/ui.js index 1fcf48e2..a6d022c0 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -1877,7 +1877,7 @@ ui.prototype.drawThumbnail = function(floorId, canvas, blocks, x, y, size, cente tempCanvas.drawImage(core.material.images.images[heroIcon], icon.stop * 32, icon.loc * height, 32, height, 32*heroLoc.x, 32*heroLoc.y+32-height, 32, height); } // foreground map - core.maps.drawBgFgMap(floorId, tempCanvas, "event2"); + core.maps.drawBgFgMap(floorId, tempCanvas, "fg"); // draw fg images.forEach(function (t) { From 095aedf1e1ea97e4e39e11d2bc3ed50c0dffdf3a Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Thu, 13 Sep 2018 16:08:17 +0800 Subject: [PATCH 7/7] Bgmap & Fgmap events --- _server/blockly/MotaAction.g4 | 195 +++++++++++++++++++++++++++------- _server/editor_blockly.js | 3 + docs/event.md | 116 ++++++++++++++------ docs/personalization.md | 10 ++ editor-mobile.html | 1 + editor.html | 1 + libs/core.js | 5 + libs/events.js | 34 +++++- libs/maps.js | 36 ++++++- 9 files changed, 327 insertions(+), 74 deletions(-) diff --git a/_server/blockly/MotaAction.g4 b/_server/blockly/MotaAction.g4 index d3d4d957..5f4dac99 100644 --- a/_server/blockly/MotaAction.g4 +++ b/_server/blockly/MotaAction.g4 @@ -187,12 +187,15 @@ action | setValue_s | show_s | hide_s - | showFloorImg_s - | hideFloorImg_s | trigger_s | revisit_s | exit_s | setBlock_s + | showFloorImg_s + | hideFloorImg_s + | showBgFgMap_s + | hideBgFgMap_s + | setBgFgBlock_s | setHeroIcon_s | update_s | updateEnemys_s @@ -420,6 +423,61 @@ var code = '{"type": "hide"'+floorstr+IdString_0+''+Int_0+'},\n'; return code; */; +trigger_s + : '触发事件' 'x' PosString ',' 'y' PosString Newline + + +/* trigger_s +tooltip : trigger: 立即触发另一个地点的事件 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=trigger%EF%BC%9A%E7%AB%8B%E5%8D%B3%E8%A7%A6%E5%8F%91%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%9C%B0%E7%82%B9%E7%9A%84%E4%BA%8B%E4%BB%B6 +default : ["0","0"] +colour : this.eventColor +var code = '{"type": "trigger", "loc": ['+PosString_0+','+PosString_1+']},\n'; +return code; +*/; + +revisit_s + : '重启当前事件' Newline + + +/* revisit_s +tooltip : revisit: 立即重启当前事件 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=revisit%EF%BC%9A%E7%AB%8B%E5%8D%B3%E9%87%8D%E5%90%AF%E5%BD%93%E5%89%8D%E4%BA%8B%E4%BB%B6 +colour : this.eventColor +var code = '{"type": "revisit"},\n'; +return code; +*/; + +exit_s + : '立刻结束当前事件' Newline + + +/* exit_s +tooltip : exit: 立刻结束当前事件 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=exit%EF%BC%9A%E7%AB%8B%E5%88%BB%E7%BB%93%E6%9D%9F%E5%BD%93%E5%89%8D%E4%BA%8B%E4%BB%B6 +colour : this.eventColor +var code = '{"type": "exit"},\n'; +return code; +*/; + +setBlock_s + : '转变图块为' Int 'x' PosString? ',' 'y' PosString? '楼层' IdString? Newline + + +/* setBlock_s +tooltip : setBlock:设置某个图块,忽略坐标楼层则为当前事件 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setblock%EF%BC%9A%E8%AE%BE%E7%BD%AE%E6%9F%90%E4%B8%AA%E5%9B%BE%E5%9D%97 +colour : this.dataColor +default : [0,"","",""] +var floorstr = ''; +if (PosString_0 && PosString_1) { + floorstr = ', "loc": ['+PosString_0+','+PosString_1+']'; +} +IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"'); +var code = '{"type": "setBlock", "number":'+Int_0+floorstr+IdString_0+'},\n'; +return code; +*/; + showFloorImg_s : '显示贴图' 'x' EvalString? ',' 'y' EvalString? '楼层' IdString? Newline @@ -482,58 +540,83 @@ var code = '{"type": "hideFloorImg"'+floorstr+IdString_0+'},\n'; return code; */; -trigger_s - : '触发事件' 'x' PosString ',' 'y' PosString Newline - +showBgFgMap_s + : '显示图层块' Bg_Fg_List 'x' EvalString? ',' 'y' EvalString? '楼层' IdString? Newline -/* trigger_s -tooltip : trigger: 立即触发另一个地点的事件 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=trigger%EF%BC%9A%E7%AB%8B%E5%8D%B3%E8%A7%A6%E5%8F%91%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%9C%B0%E7%82%B9%E7%9A%84%E4%BA%8B%E4%BB%B6 -default : ["0","0"] + +/* showBgFgMap_s +tooltip : showBgFgMap: 显示图层块,即背景图层/前景图层的某些图块,xy为左上角坐标,可用逗号分隔表示多个点 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=showFloorImg%ef%bc%9a%e6%98%be%e7%a4%ba%e8%b4%b4%e5%9b%be +default : ["bg","","",""] colour : this.eventColor -var code = '{"type": "trigger", "loc": ['+PosString_0+','+PosString_1+']},\n'; +var floorstr = ''; +if (EvalString_0 && EvalString_1) { + var pattern1 = /^flag:[0-9a-zA-Z_][0-9a-zA-Z_\-:]*$/; + if(pattern1.test(EvalString_0) || pattern1.test(EvalString_1)){ + EvalString_0=MotaActionFunctions.PosString_pre(EvalString_0); + EvalString_1=MotaActionFunctions.PosString_pre(EvalString_1); + EvalString_0=[EvalString_0,EvalString_1] + } else { + var pattern2 = /^([+-]?\d+)(,[+-]?\d+)*$/; + if(!pattern2.test(EvalString_0) || !pattern2.test(EvalString_1))throw new Error('坐标格式错误,请右键点击帮助查看格式'); + EvalString_0=EvalString_0.split(','); + EvalString_1=EvalString_1.split(','); + if(EvalString_0.length!==EvalString_1.length)throw new Error('坐标格式错误,请右键点击帮助查看格式'); + for(var ii=0;ii + diff --git a/editor.html b/editor.html index ef349dcc..446aaaaf 100644 --- a/editor.html +++ b/editor.html @@ -392,6 +392,7 @@ + diff --git a/libs/core.js b/libs/core.js index 0f010eec..98705b78 100644 --- a/libs/core.js +++ b/libs/core.js @@ -743,6 +743,11 @@ core.prototype.setBlock = function (number, x, y, floorId) { core.maps.setBlock(number, x, y, floorId); } +////// 改变图层块 ////// +core.prototype.setBgFgBlock = function (name, number, x, y, floorId) { + core.maps.setBgFgBlock(name, number, x, y, floorId); +} + ////// 添加一个全局动画 ////// core.prototype.addGlobalAnimate = function (block) { core.maps.addGlobalAnimate(block); diff --git a/libs/events.js b/libs/events.js index 0d63148c..c69f1623 100644 --- a/libs/events.js +++ b/libs/events.js @@ -399,6 +399,16 @@ events.prototype.doAction = function() { } else this.doAction(); break; + case "setBlock": // 设置某图块 + { + if (core.isset(data.loc)) { + x=core.calValue(data.loc[0]); + y=core.calValue(data.loc[1]); + } + core.setBlock(data.number, x, y, data.floorId); + this.doAction(); + break; + } case "showFloorImg": // 显示贴图 if (!core.isset(data.loc)) data.loc = [x,y]; @@ -419,13 +429,33 @@ events.prototype.doAction = function() { core.events.doAction(); }) break; - case "setBlock": // 设置某图块 + case "showBgFgMap": // 显示图层块 + if (!core.isset(data.loc)) + data.loc = [x,y]; + if ((typeof data.loc[0] == 'number' || typeof data.loc[0] == 'string') + && (typeof data.loc[1] == 'number' || typeof data.loc[1] == 'string')) + data.loc = [[core.calValue(data.loc[0]), core.calValue(data.loc[1])]]; + core.maps.setBgFgMap("show", data.name, data.loc, data.floorId, function() { + core.events.doAction(); + }) + break; + case "hideBgFgMap": // 隐藏图层块 + if (!core.isset(data.loc)) + data.loc = [x,y]; + if ((typeof data.loc[0] == 'number' || typeof data.loc[0] == 'string') + && (typeof data.loc[1] == 'number' || typeof data.loc[1] == 'string')) + data.loc = [[core.calValue(data.loc[0]), core.calValue(data.loc[1])]]; + core.maps.setBgFgMap("hide", data.name, data.loc, data.floorId, function() { + core.events.doAction(); + }) + break; + case "setBgFgBlock": // 设置图层块 { if (core.isset(data.loc)) { x=core.calValue(data.loc[0]); y=core.calValue(data.loc[1]); } - core.setBlock(data.number, x, y, data.floorId); + core.setBgFgBlock(data.name, data.number, x, y, data.floorId); this.doAction(); break; } diff --git a/libs/maps.js b/libs/maps.js index 8d572ee6..4ec056a9 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -350,7 +350,7 @@ maps.prototype.drawBgFgMap = function (floorId, canvas, name) { var blockImage = core.material.images.terrains; var getMapArray = function (name) { - var arr = core.floors[floorId][name+"map"] || []; + var arr = core.clone(core.floors[floorId][name+"map"] || []); for (var x = 0; x < width; x++) { for (var y = 0; y < height; y++) { arr[y] = arr[y] || []; @@ -992,6 +992,18 @@ maps.prototype.setBlock = function (number, x, y, floorId) { } } +////// 改变图层块 ////// +maps.prototype.setBgFgBlock = function (name, number, x, y, floorId) { + floorId = floorId || core.status.floorId; + if (!core.isset(number) || !core.isset(x) || !core.isset(y)) return; + if (x<0 || x>=core.bigmap.width || y<0 || y>=core.bigmap.height) return; + if (name!='bg' && name!='fg') return; + + core.setFlag(name+"v_"+floorId+"_"+x+"_"+y, number); + if (floorId == core.status.floorId) + core.drawMap(floorId); +} + ////// 添加一个全局动画 ////// maps.prototype.addGlobalAnimate = function (b) { if (main.mode=='editor' && main.editor.disableGlobalAnimate) return; @@ -1140,6 +1152,28 @@ maps.prototype.setFloorImage = function (type, loc, floorId, callback) { } } +maps.prototype.setBgFgMap = function (type, name, loc, floorId, callback) { + if (type!='show') type='hide'; + if (name!='fg') name='bg'; + if (typeof loc[0] == 'number' && typeof loc[1] == 'number') + loc = [loc]; + floorId = floorId||core.status.floorId; + + if (loc.length==0) return; + loc.forEach(function (t) { + var x=t[0], y=t[1]; + var flag = name+"_"+floorId+"_"+x+"_"+y; + core.setFlag(flag, type=='show'?false:true); + }) + + if (floorId==core.status.floorId) { + core.drawMap(floorId, callback); + } + else { + if (core.isset(callback)) callback(); + } +} + maps.prototype.resetMap = function(floorId) { var floorId = floorId||core.status.floorId; core.status.maps[floorId] = this.loadFloor(floorId);