main.init('editor')

This commit is contained in:
YouWei Zhao 2017-12-30 21:18:58 +08:00
parent f92124e162
commit 627bcee8c4
5 changed files with 67 additions and 34 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
.vscode
*ce5eec52_2fa1_447b_8dad_764e267a7fab*
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

View File

@ -14,7 +14,7 @@
if (isset(callback)) callback(null);
}
//callback(err:String)
editor_file.saveFloorFile = function(editor,saveAsFilename,callback){
editor_file.saveFloorFileAs = function(editor,saveAsFilename,callback){
if (isset(callback)) callback(null);
}
//callback(err:String)

View File

@ -421,7 +421,7 @@ editor.prototype.init = function() {
editor.prototype.loadMod = function (callback) {
main={'instance':{}};
var loadedNum=0;
['libs/floors/icons.js','libs/floors/maps.js','libs/icons.js','libs/maps.js'].forEach( function (value,ii,aa) {
['libs/project/icons.js','libs/project/maps.js','libs/icons.js','libs/maps.js'].forEach( function (value,ii,aa) {
var script = document.createElement('script');
script.src = value + '?' + editor.version;
document.body.appendChild(script);

View File

@ -1778,39 +1778,62 @@ core.prototype.setFillStyle = function (map, style) {
* @param callback 绘制完毕后的回调函数
*/
core.prototype.drawMap = function (mapName, callback) {
var mapData = core.status.maps[mapName];
var mapBlocks = mapData.blocks;
core.status.floorId = mapName;
core.status.thisMap = mapData;
core.clearMap('all');
core.removeGlobalAnimate(null, null, true);
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 < 13; x++) {
for (var y = 0; y < 13; y++) {
core.canvas.bg.drawImage(blockImage, 0, blockIcon * 32, 32, 32, x * 32, y * 32, 32, 32);
}
}
var autotileMaps = [];
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();
autotileMaps[13*block.x + block.y] = block.event.id;
continue;
}
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);
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 < 13; x++) {
for (var y = 0; y < 13; y++) {
core.canvas.bg.drawImage(blockImage, 0, blockIcon * 32, 32, 32, x * 32, y * 32, 32, 32);
}
}
}
core.drawAutotile(mapName, 'event', autotileMaps, 0, 0, 32);
if (main.mode=='editor'){
main.editor.drawMapBg = function(){
core.clearMap('bg', 0, 0, 416, 416);
drawBg();
}
} else {
drawBg();
}
var drawEvent = function(){
var mapData = core.status.maps[mapName];
var mapBlocks = mapData.blocks;
core.status.floorId = mapName;
core.status.thisMap = mapData;
var autotileMaps = [];
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();
autotileMaps[13*block.x + block.y] = block.event.id;
continue;
}
else {
var blockIcon = core.material.icons[block.event.cls][block.event.id];
var 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);
}
}
}
core.drawAutotile(mapName, 'event', autotileMaps, 0, 0, 32);
}
if (main.mode=='editor'){
main.editor.updateMap = function(){
core.clearMap('event', 0, 0, 416, 416);
drawEvent();
}
} else {
drawEvent();
}
core.setGlobalAnimate(core.values.animateSpeed);
if (core.isset(callback))
@ -2023,8 +2046,8 @@ core.prototype.moveBlock = function(x,y,steps,time,immediateHide,callback) {
core.setAlpha('ui', 1.0);
block=block.block;
blockIcon = core.material.icons[block.event.cls][block.event.id];
blockImage = core.material.images[block.event.cls];
var blockIcon = core.material.icons[block.event.cls][block.event.id];
var blockImage = core.material.images[block.event.cls];
// 绘制data层
var opacityVal = 1;
@ -2215,6 +2238,7 @@ core.prototype.removeBlockByIds = function (floorId, ids) {
}
core.prototype.addGlobalAnimate = function (animateMore, x, y, loc, image) {
if (main.mode=='editor') return;
if (animateMore == 2) {
core.status.twoAnimateObjs.push({
'x': x,
@ -2236,6 +2260,7 @@ core.prototype.addGlobalAnimate = function (animateMore, x, y, loc, image) {
}
core.prototype.removeGlobalAnimate = function (x, y, all) {
if (main.mode=='editor') return;
if (all == true) {
core.status.twoAnimateObjs = [];
core.status.fourAnimateObjs = [];
@ -2255,6 +2280,7 @@ core.prototype.removeGlobalAnimate = function (x, y, all) {
}
core.prototype.setGlobalAnimate = function (speed) {
if (main.mode=='editor') return;
clearInterval(core.interval.twoAnimate);
clearInterval(core.interval.fourAnimate);
var animateClose = false;
@ -3419,7 +3445,8 @@ core.prototype.checkLvUp = function () {
}
core.prototype.resize = function(clientWidth, clientHeight) {
if (main.mode=='editor')return;
// 默认画布大小
var DEFAULT_CANVAS_WIDTH = 422;
// 默认边栏宽度

View File

@ -40,6 +40,7 @@ function main() {
'debuffCol': document.getElementById('debuffCol'),
'hard': document.getElementById('hard'),
};
this.mode = 'play';
this.loadList = [
'items', 'icons', 'maps', 'enemys', 'events', 'data', 'ui', 'core'
];
@ -100,10 +101,14 @@ function main() {
this.canvas = {};
}
main.prototype.init = function () {
main.prototype.init = function (mode) {
for (var i = 0; i < main.dom.gameCanvas.length; i++) {
main.canvas[main.dom.gameCanvas[i].id] = main.dom.gameCanvas[i].getContext('2d');
}
if (({"editor":0,"replay":0}).hasOwnProperty(mode)) {
main.mode = mode;
if (mode === 'editor')main.editor = {};
}
main.loadPureData(function(){
main.useCompress=data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d.main.useCompress;
main.floorIds=data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d.main.floorIds;