This commit is contained in:
ckcz123 2017-12-31 22:43:19 +08:00
parent bd1ad3916a
commit 2f50679891
3 changed files with 49 additions and 16 deletions

View File

@ -2013,20 +2013,30 @@ core.prototype.drawMap = function (mapName, callback) {
core.canvas.bg.drawImage(blockImage, 0, blockIcon * 32, 32, 32, x * 32, y * 32, 32, 32);
}
}
var mapArr = core.maps.getMapArr(mapName);
// 如果存在png
if (core.isset(core.floors[mapName].png)) {
var png = core.floors[mapName].png;
if (core.isset(core.material.images.pngs[png])) {
core.canvas.bg.drawImage(core.material.images.pngs[png], 0, 0, 416, 416);
}
}
var mapArray = core.maps.getMapArray(core.status.maps, mapName);
for (var b = 0; b < mapBlocks.length; b++) {
// 事件启用
var block = mapBlocks[b];
if (core.isset(block.event) && !(core.isset(block.enable) && !block.enable)) {
if (block.event.cls == 'autotile') {
core.drawAutotile(core.canvas.event, mapArr, block, 32);
continue;
core.drawAutotile(core.canvas.event, mapArray, block, 32, 0, 0);
}
else {
blockIcon = core.material.icons[block.event.cls][block.event.id];
blockImage = core.material.images[block.event.cls];
core.canvas.event.drawImage(core.material.images[block.event.cls], 0, blockIcon * 32, 32, 32, block.x * 32, block.y * 32, 32, 32);
core.addGlobalAnimate(block.event.animate, block.x * 32, block.y * 32, blockIcon, blockImage);
if (block.event.id!='none') {
blockIcon = core.material.icons[block.event.cls][block.event.id];
blockImage = core.material.images[block.event.cls];
core.canvas.event.drawImage(core.material.images[block.event.cls], 0, blockIcon * 32, 32, 32, block.x * 32, block.y * 32, 32, 32);
core.addGlobalAnimate(block.event.animate, block.x * 32, block.y * 32, blockIcon, blockImage);
}
}
}
}
@ -2088,10 +2098,8 @@ core.prototype.drawAutotile = function(ctx, mapArr, block, size, left, top){
return indexArr;
}
// 开始绘制autotile
var top = core.isset(top)? top : 0, left = core.isset(left) ? left : 0;
var x = block.x, y = block.y;
var pieceIndexs = getAutotileIndexs(x, y);
ctx.clearRect(x*size+left, y*size+top, size, size);
//修正四个边角的固定搭配
if(pieceIndexs[0] == 13){

View File

@ -354,11 +354,29 @@ maps.prototype.load = function (data, floorId) {
}
return this.loadFloor(floorId, data[floorId]);
}
maps.prototype.getMapArr = function (floorId){
var floor = core.floors[floorId];
var map=floor.map;
maps.prototype.getMapArray = function (maps, floorId){
if (!core.isset(floorId)) {
var map = {};
for (var id in maps) {
map[id] = this.getMapArray(maps, id);
}
return map;
}
return map;
var thisFloor = maps[floorId];
var blocks = [];
for (var x=0;x<13;x++) {
blocks[x]=[];
for (var y=0;y<13;y++) {
blocks[x].push(0);
}
}
thisFloor.blocks.forEach(function (block) {
if (!(core.isset(block.enable) && !block.enable))
blocks[block.y][block.x] = block.id;
});
return blocks;
}
main.instance.maps = new maps();

View File

@ -1083,13 +1083,20 @@ ui.prototype.drawThumbnail = function(floorId, canvas, blocks, x, y, size, heroL
core.canvas[canvas].drawImage(blockImage, 0, blockIcon * 32, 32, 32, x + i * persize, y + j * persize, persize, persize);
}
}
var mapArr = core.maps.getMapArr(floorId);
if (core.isset(core.floors[floorId].png)) {
var png = core.floors[floorId].png;
if (core.isset(core.material.images.pngs[png])) {
core.canvas.ui.drawImage(core.material.images.pngs[png], x, y, size, size);
}
}
var mapArray = core.maps.getMapArray(core.status.maps, floorId);
for (var b in blocks) {
var block = blocks[b];
if (core.isset(block.event) && !(core.isset(block.enable) && !block.enable)) {
if (block.event.cls == 'autotile') {
core.drawAutotile(core.canvas.ui, mapArr, block, persize, x, y);
continue;
core.drawAutotile(core.canvas.ui, mapArray, block, persize, x, y);
}
else {
if (block.event.id!='none') {