resetMap & fix autotileObjs in load
This commit is contained in:
parent
0fc267be14
commit
93dceaa7b8
@ -135,11 +135,15 @@ core.changeFloor('MT5', null, {'x': 3, 'y': 6}, 0) 无动画切换到MT5层的(3
|
||||
|
||||
|
||||
core.resetMap()
|
||||
重置当前楼层地图。
|
||||
重置当前楼层地图和楼层属性。
|
||||
当我们修改某一层地图后,进游戏读档,会发现修改的内容并没有被更新上去。
|
||||
这是因为,H5的存档是会存下来每一个楼层的地图的,读档会从档里面获得地图信息。
|
||||
此时,如果我们在某一层地图执行 core.resetMap() ,则可以立刻从剧本中读取并重置当前楼层地图。
|
||||
已经被修改过的内容也会相应出现。
|
||||
此函数参数有三种形式:
|
||||
- 不加任何参数,表示重置当前层:core.resetMap()
|
||||
- 加上一个floorId,表示重置某一层:core.resetMap("MT1")
|
||||
- 使用一个数组,表示重置若干层:core.resetMap(["MT1", "MT2", "MT3"])
|
||||
|
||||
|
||||
R
|
||||
|
||||
19
libs/maps.js
19
libs/maps.js
@ -476,7 +476,7 @@ maps.prototype.drawBgFgMap = function (floorId, canvas, name, animate) {
|
||||
}
|
||||
}
|
||||
}
|
||||
core.status.autotileAnimateObjs[name+"map"] = core.clone(arr);
|
||||
if (animate) core.status.autotileAnimateObjs[name+"map"] = core.clone(arr);
|
||||
}
|
||||
|
||||
////// 绘制某张地图 //////
|
||||
@ -1449,13 +1449,12 @@ maps.prototype.setBgFgMap = function (type, name, loc, floorId, callback) {
|
||||
maps.prototype.resetMap = function(floorId) {
|
||||
floorId = floorId || core.status.floorId;
|
||||
if (!core.isset(floorId)) return;
|
||||
core.status.maps[floorId] = this.loadFloor(floorId);
|
||||
if (floorId==core.status.floorId) {
|
||||
this.drawMap(floorId, function () {
|
||||
core.drawTip("地图重置成功");
|
||||
})
|
||||
}
|
||||
else {
|
||||
core.drawTip(floorId+"地图重置成功");
|
||||
}
|
||||
if (typeof floorId == 'string') floorId = [floorId];
|
||||
var needRefresh = false;
|
||||
floorId.forEach(function (t) {
|
||||
core.status.maps[t] = core.maps.loadFloor(t);
|
||||
if (t == core.status.floorId) needRefresh = true;
|
||||
});
|
||||
if (needRefresh) this.drawMap(core.status.floorId);
|
||||
core.drawTip("地图重置成功");
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user