From ba2f92572ba1b88ae1bd692af79f940ec2a0d4ef Mon Sep 17 00:00:00 2001 From: oc Date: Wed, 2 Jan 2019 22:51:02 +0800 Subject: [PATCH] Fix groundPattern --- libs/maps.js | 16 ++++++++++++---- libs/ui.js | 10 ++++++++-- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/libs/maps.js b/libs/maps.js index 83e83e40..3e9e86d9 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -465,6 +465,17 @@ maps.prototype.drawBgFgMap = function (floorId, canvas, name, animate) { if (animate) core.status.autotileAnimateObjs[name+"map"] = core.clone(arr); } +////// 生成groundPattern ////// +maps.prototype.generateGroundPattern = function (floorId) { + // 生成floorId层的groundPattern(盒子内的怪物动画) + var groundId = ((core.status.maps||core.floors)[floorId||core.status.floorId]||{}).defaultGround || "ground"; + core.material.groundCanvas.clearRect(0, 0, 32, 32); + core.material.groundCanvas.drawImage(core.material.images.terrains, 0, 32*core.material.icons.terrains[groundId], 32, 32, 0, 0, 32, 32); + core.material.groundPattern = core.material.groundCanvas.createPattern(core.material.groundCanvas.canvas, 'repeat'); + // 如果需要用纯色可以直接将下面代码改成改成 + // core.material.groundPattern = '#000000'; +} + ////// 绘制某张地图 ////// maps.prototype.drawMap = function (floorId, callback) { floorId = floorId || core.status.floorId; @@ -475,10 +486,7 @@ maps.prototype.drawMap = function (floorId, callback) { } core.clearMap('all'); - var groundId = (core.status.maps||core.floors)[floorId].defaultGround || "ground"; - core.material.groundCanvas.clearRect(0, 0, 32, 32); - core.material.groundCanvas.drawImage(core.material.images.terrains, 0, 32*core.material.icons.terrains[groundId], 32, 32, 0, 0, 32, 32); - core.material.groundPattern = core.material.groundCanvas.createPattern(core.material.groundCanvas.canvas, 'repeat'); + this.generateGroundPattern(floorId); var drawBg = function(){ var width = core.floors[floorId].width || 13; diff --git a/libs/ui.js b/libs/ui.js index 0e126fbb..cd8063ac 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -227,6 +227,7 @@ ui.prototype.closePanel = function () { core.status.boxAnimateObjs = []; clearInterval(core.status.event.interval); core.clearLastEvent(); + core.maps.generateGroundPattern(); core.unLockControl(); core.status.event.data = null; core.status.event.id = null; @@ -1537,9 +1538,14 @@ ui.prototype.drawCursor = function () { ////// 绘制怪物手册 ////// ui.prototype.drawBook = function (index) { - var enemys = core.enemys.getCurrentEnemys(core.floorIds[(core.status.event.selection||{}).index]); - + var floorId = core.floorIds[(core.status.event.ui||{}).index] || core.status.floorId; + var enemys = core.enemys.getCurrentEnemys(floorId); + core.clearLastEvent(); + + // 生成groundPattern + core.maps.generateGroundPattern(floorId); + core.setFillStyle('ui', core.material.groundPattern); core.fillRect('ui', 0, 0, 416, 416);