/* loader.js:负责对资源的加载 */ "use strict"; function loader() { this.init(); } loader.prototype.init = function () { } ////// 设置加载进度条进度 ////// loader.prototype.setStartProgressVal = function (val) { core.dom.startTopProgress.style.width = val + '%'; } ////// 设置加载进度条提示文字 ////// loader.prototype.setStartLoadTipText = function (text) { core.dom.startTopLoadTips.innerHTML = text; } loader.prototype.load = function (callback) { // 加载icons core.loader.loadIcons(); // 加载图片 core.loader.loadImages(core.materials, core.material.images, function () { // 加载png图片 core.material.images.images = {}; var images = core.clone(core.images); if (images.indexOf("hero.png")<0) images.push("hero.png"); core.loader.loadImages(images, core.material.images.images, function () { // 加载autotile core.material.images.autotile = {}; core.loader.loadImages(Object.keys(core.material.icons.autotile), core.material.images.autotile, function () { // 加载tilesets core.material.images.tilesets = {}; if (!core.isset(core.tilesets)) core.tilesets = []; core.loader.loadImages(core.clone(core.tilesets), core.material.images.tilesets, function () { // 检查宽高是32倍数,如果出错在控制台报错 for (var imgName in core.material.images.tilesets) { var img = core.material.images.tilesets[imgName]; if (img.width%32!=0 || img.height%32!=0) { console.warn("警告!"+imgName+"的宽或高不是32的倍数!"); } if (img.width * img.height > 32*32*1000) { console.warn("警告!"+imgName+"上的图块素材个数大于1000!"); } } core.loader.loadAnimates(); core.loader.loadMusic(); if (core.isset(callback)) callback(); }) }) }) }) } loader.prototype.loadIcons = function () { this.loadImage("icons.png", function (id, image) { var images = core.cropImage(image); for (var key in core.statusBar.icons) { if (typeof core.statusBar.icons[key] == 'number') { core.statusBar.icons[key] = images[core.statusBar.icons[key]]; if (core.isset(core.statusBar.image[key])) core.statusBar.image[key].src = core.statusBar.icons[key].src; } } }); } loader.prototype.loadImages = function (names, toSave, callback) { if (!core.isset(names) || names.length==0) { if (core.isset(callback)) callback(); return; } var items = 0; for (var i=0;i0) core.playBgm(core.bgms[0]); }