pixelbutler
Version:
Low-res bitmap render engine for big screens
35 lines (34 loc) • 1.47 kB
JavaScript
;
var Bitmap = require('../core/Bitmap');
var SpriteSheet = require('../core/SpriteSheet');
var ImageDataLoader = require('./ImageDataLoader');
var SpriteSheetLoader = (function () {
function SpriteSheetLoader(url, opts, useAlpha) {
if (typeof useAlpha === "undefined") { useAlpha = false; }
this.url = url;
this.opts = opts;
this.useAlpha = useAlpha;
}
SpriteSheetLoader.prototype.load = function (callback) {
var _this = this;
new ImageDataLoader(this.url).load(function (err, image) {
if (err) {
callback(err, null);
return;
}
var outerMargin = (_this.opts.outerMargin || 0);
var innerMargin = (_this.opts.innerMargin || 0);
var sheet = new SpriteSheet(_this.opts.spritesX, _this.opts.spritesY);
for (var iy = 0; iy < _this.opts.spritesY; iy++) {
for (var ix = 0; ix < _this.opts.spritesX; ix++) {
var x = outerMargin + ix * (_this.opts.sizeX + innerMargin);
var y = outerMargin + iy * (_this.opts.sizeY + innerMargin);
sheet.addSprite(Bitmap.clipFromData(image.data, image.width, image.height, 4, x, y, _this.opts.sizeX, _this.opts.sizeY, _this.useAlpha));
}
}
callback(null, sheet);
});
};
return SpriteSheetLoader;
})();
module.exports = SpriteSheetLoader;