diff --git a/docs/.nojekyll b/docs/.nojekyll deleted file mode 100644 index e69de29b..00000000 diff --git a/libs/control.js b/libs/control.js index 30e34c33..fb49cf22 100644 --- a/libs/control.js +++ b/libs/control.js @@ -72,6 +72,12 @@ control.prototype.setRequestAnimationFrame = function () { // Global Autotile Animate core.status.autotileAnimateObjs.blocks.forEach(function (block) { + // ------ 界面外的动画不绘制 + if (block.x * 32 < core.bigmap.offsetX - 64 || block.x * 32 > core.bigmap.offsetX + 416 + 32 + || block.y * 32 < core.bigmap.offsetY - 64 || block.y * 32 > core.bigmap.offsetY + 416 + 32 + 16) { + return; + } + var cv = core.isset(block.name)?core.canvas[block.name]:core.canvas.event; cv.clearRect(block.x * 32, block.y * 32, 32, 32); if (core.isset(block.name)) { diff --git a/libs/maps.js b/libs/maps.js index 851ad07e..325821d3 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -364,16 +364,21 @@ maps.prototype.drawBlock = function (block, animate, dx, dy) { // none:空地 if (block.event.id=='none') return; - var cls = block.event.cls; + dx = dx || 0; + dy = dy || 0; + + // --- 在界面外的动画不绘制 + if ((animate||0)>1 && (block.event.animate||0)>1 && + (block.x * 32 + dx < core.bigmap.offsetX - 64 || block.x * 32 + dx > core.bigmap.offsetX + 416 + 32 + || block.y * 32 + dy < core.bigmap.offsetY - 64 || block.y * 32 + dy > core.bigmap.offsetY + 416 + 32 + 16)) { + return; + } var blockInfo = this.__getBlockInfo(block); if (blockInfo == null) return; var image = blockInfo.image, x = blockInfo.bx, y = blockInfo.by, height = blockInfo.height; if (!blockInfo.isTileset) x = (animate||0)%(block.event.animate||1); - dx = dx || 0; - dy = dy || 0; - if (core.isset(block.name)) { core.clearMap(block.name, block.x * 32, block.y * 32, 32, 32); if (block.name == 'bg') {