#28 tileset 渲染
This commit is contained in:
@@ -4582,7 +4582,15 @@ var ObjectUtils = (function () {
|
|||||||
ObjectUtils.elements = function (p) {
|
ObjectUtils.elements = function (p) {
|
||||||
var c = [];
|
var c = [];
|
||||||
for (var i in p) {
|
for (var i in p) {
|
||||||
c.push(p[i]);
|
if (Array.isArray(p[i])) {
|
||||||
|
for (var _i = 0, _a = p[i]; _i < _a.length; _i++) {
|
||||||
|
var v = _a[_i];
|
||||||
|
c.push(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
c.push(p[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return c;
|
return c;
|
||||||
};
|
};
|
||||||
@@ -7863,16 +7871,16 @@ var es;
|
|||||||
switch (_c.label) {
|
switch (_c.label) {
|
||||||
case 0:
|
case 0:
|
||||||
_i = 0, _a = ObjectUtils.elements(xEle).where(function (x) {
|
_i = 0, _a = ObjectUtils.elements(xEle).where(function (x) {
|
||||||
return x.name == "layer" || x.name == "objectgroup" || x.name == "imagelayer" || x.name == "group";
|
return x.type == "tilelayer" || x.name == "objectgroup" || x.name == "imagelayer" || x.name == "group";
|
||||||
});
|
});
|
||||||
_c.label = 1;
|
_c.label = 1;
|
||||||
case 1:
|
case 1:
|
||||||
if (!(_i < _a.length)) return [3, 10];
|
if (!(_i < _a.length)) return [3, 10];
|
||||||
e = _a[_i];
|
e = _a[_i];
|
||||||
layer = void 0;
|
layer = void 0;
|
||||||
_b = e.name;
|
_b = e.type;
|
||||||
switch (_b) {
|
switch (_b) {
|
||||||
case "layer": return [3, 2];
|
case "tilelayer": return [3, 2];
|
||||||
case "objectgroup": return [3, 3];
|
case "objectgroup": return [3, 3];
|
||||||
case "imagelayer": return [3, 4];
|
case "imagelayer": return [3, 4];
|
||||||
case "group": return [3, 6];
|
case "group": return [3, 6];
|
||||||
@@ -7970,10 +7978,10 @@ var es;
|
|||||||
layer.width = xLayer["width"];
|
layer.width = xLayer["width"];
|
||||||
layer.height = xLayer["height"];
|
layer.height = xLayer["height"];
|
||||||
var xData = xLayer["data"];
|
var xData = xLayer["data"];
|
||||||
var encoding = xData["encoding"];
|
var encoding = xData["encoding"] != undefined ? xData["encoding"] : "csv";
|
||||||
layer.tiles = new Array(width * height);
|
layer.tiles = new Array(width * height);
|
||||||
if (encoding == "base64") {
|
if (encoding == "base64") {
|
||||||
var br = es.TmxUtils.decode(xData, encoding, xData["compression"]);
|
var br = es.TmxUtils.decode(xData.toString(), encoding, xData["compression"]);
|
||||||
var index = 0;
|
var index = 0;
|
||||||
for (var j = 0; j < height; j++) {
|
for (var j = 0; j < height; j++) {
|
||||||
for (var i = 0; i < width; i++) {
|
for (var i = 0; i < width; i++) {
|
||||||
@@ -7983,10 +7991,9 @@ var es;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (encoding == "csv") {
|
else if (encoding == "csv") {
|
||||||
var csvData = es.TmxUtils.decode(xData, encoding, xData["compression"]);
|
|
||||||
var k = 0;
|
var k = 0;
|
||||||
for (var _i = 0, csvData_1 = csvData; _i < csvData_1.length; _i++) {
|
for (var _i = 0, xData_1 = xData; _i < xData_1.length; _i++) {
|
||||||
var s = csvData_1[_i];
|
var s = xData_1[_i];
|
||||||
var gid = s;
|
var gid = s;
|
||||||
var x = k % width;
|
var x = k % width;
|
||||||
var y = k / width;
|
var y = k / width;
|
||||||
@@ -8142,11 +8149,11 @@ var es;
|
|||||||
case 6:
|
case 6:
|
||||||
tileset.properties = this.parsePropertyDict(xTileset["properties"]);
|
tileset.properties = this.parsePropertyDict(xTileset["properties"]);
|
||||||
tileset.tileRegions = new Map();
|
tileset.tileRegions = new Map();
|
||||||
if (tileset.image) {
|
if (tileset.image && tileset.image.bitmap) {
|
||||||
id = firstGid;
|
id = firstGid;
|
||||||
for (y = tileset.margin; y < tileset.image.height - tileset.margin; y += tileset.tileHeight + tileset.spacing) {
|
for (y = tileset.margin; y < tileset.image.bitmap.height - tileset.margin; y += tileset.tileHeight + tileset.spacing) {
|
||||||
column = 0;
|
column = 0;
|
||||||
for (x = tileset.margin; x < tileset.image.width - tileset.margin; x += tileset.tileWidth + tileset.spacing) {
|
for (x = tileset.margin; x < tileset.image.bitmap.width - tileset.margin; x += tileset.tileWidth + tileset.spacing) {
|
||||||
tileset.tileRegions.set(id++, new es.Rectangle(x, y, tileset.tileWidth, tileset.tileHeight));
|
tileset.tileRegions.set(id++, new es.Rectangle(x, y, tileset.tileWidth, tileset.tileHeight));
|
||||||
if (++column >= tileset.columns)
|
if (++column >= tileset.columns)
|
||||||
break;
|
break;
|
||||||
@@ -8155,7 +8162,7 @@ var es;
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
tileset.tiles.forEach(function (tile) {
|
tileset.tiles.forEach(function (tile) {
|
||||||
tileset.tileRegions.set(firstGid + tile.id, new es.Rectangle(0, 0, tile.image.width, tile.image.height));
|
tileset.tileRegions.set(firstGid + tile.id, new es.Rectangle(0, 0, tile.image.bitmap.width, tile.image.bitmap.height));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return [2, tileset];
|
return [2, tileset];
|
||||||
@@ -8537,24 +8544,26 @@ var es;
|
|||||||
ty += (tileHeight - sourceRect.height * scale.y);
|
ty += (tileHeight - sourceRect.height * scale.y);
|
||||||
var pos = new es.Vector2(tx, ty).add(position);
|
var pos = new es.Vector2(tx, ty).add(position);
|
||||||
if (tile.tileset.image) {
|
if (tile.tileset.image) {
|
||||||
if (!tile.tilesetTile.image.bitmap.parent)
|
if (!tile.tileset.image.bitmap.parent)
|
||||||
container.addChild(tile.tilesetTile.image.bitmap);
|
container.addChild(tile.tileset.image.bitmap);
|
||||||
tile.tilesetTile.image.bitmap.x = pos.x;
|
tile.tileset.image.bitmap.x = pos.x;
|
||||||
tile.tilesetTile.image.bitmap.y = pos.y;
|
tile.tileset.image.bitmap.y = pos.y;
|
||||||
tile.tilesetTile.image.bitmap.scaleX = scale.x;
|
tile.tileset.image.bitmap.scaleX = scale.x;
|
||||||
tile.tilesetTile.image.bitmap.scaleY = scale.y;
|
tile.tileset.image.bitmap.scaleY = scale.y;
|
||||||
tile.tilesetTile.image.bitmap.rotation = rotation;
|
tile.tileset.image.bitmap.rotation = rotation;
|
||||||
tile.tilesetTile.image.bitmap.filters = [color];
|
tile.tileset.image.bitmap.filters = [color];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (!tilesetTile.image.bitmap)
|
if (tilesetTile.image.bitmap) {
|
||||||
container.addChild(tilesetTile.image.bitmap);
|
if (!tilesetTile.image.bitmap.parent)
|
||||||
tilesetTile.image.bitmap.x = pos.x;
|
container.addChild(tilesetTile.image.bitmap);
|
||||||
tilesetTile.image.bitmap.y = pos.y;
|
tilesetTile.image.bitmap.x = pos.x;
|
||||||
tilesetTile.image.bitmap.scaleX = scale.x;
|
tilesetTile.image.bitmap.y = pos.y;
|
||||||
tilesetTile.image.bitmap.scaleY = scale.y;
|
tilesetTile.image.bitmap.scaleX = scale.x;
|
||||||
tilesetTile.image.bitmap.rotation = rotation;
|
tilesetTile.image.bitmap.scaleY = scale.y;
|
||||||
tilesetTile.image.bitmap.filters = [color];
|
tilesetTile.image.bitmap.rotation = rotation;
|
||||||
|
tilesetTile.image.bitmap.filters = [color];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return TiledRendering;
|
return TiledRendering;
|
||||||
@@ -8646,17 +8655,16 @@ var es;
|
|||||||
TmxUtils.decode = function (data, encoding, compression) {
|
TmxUtils.decode = function (data, encoding, compression) {
|
||||||
compression = compression || "none";
|
compression = compression || "none";
|
||||||
encoding = encoding || "none";
|
encoding = encoding || "none";
|
||||||
var text = data.children[0].text;
|
|
||||||
switch (encoding) {
|
switch (encoding) {
|
||||||
case "base64":
|
case "base64":
|
||||||
var decoded = es.Base64Utils.decodeBase64AsArray(text, 4);
|
var decoded = es.Base64Utils.decodeBase64AsArray(data, 4);
|
||||||
return (compression === "none") ? decoded : es.Base64Utils.decompress(text, decoded, compression);
|
return (compression === "none") ? decoded : es.Base64Utils.decompress(data, decoded, compression);
|
||||||
case "csv":
|
case "csv":
|
||||||
return es.Base64Utils.decodeCSV(text);
|
return es.Base64Utils.decodeCSV(data);
|
||||||
case "none":
|
case "none":
|
||||||
var datas = [];
|
var datas = [];
|
||||||
for (var i = 0; i < data.children.length; i++) {
|
for (var i = 0; i < data.length; i++) {
|
||||||
datas[i] = +data.children[i].attributes.gid;
|
datas[i] = +data[i].gid;
|
||||||
}
|
}
|
||||||
return datas;
|
return datas;
|
||||||
default:
|
default:
|
||||||
|
|||||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+43
-35
@@ -4582,7 +4582,15 @@ var ObjectUtils = (function () {
|
|||||||
ObjectUtils.elements = function (p) {
|
ObjectUtils.elements = function (p) {
|
||||||
var c = [];
|
var c = [];
|
||||||
for (var i in p) {
|
for (var i in p) {
|
||||||
c.push(p[i]);
|
if (Array.isArray(p[i])) {
|
||||||
|
for (var _i = 0, _a = p[i]; _i < _a.length; _i++) {
|
||||||
|
var v = _a[_i];
|
||||||
|
c.push(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
c.push(p[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return c;
|
return c;
|
||||||
};
|
};
|
||||||
@@ -7863,16 +7871,16 @@ var es;
|
|||||||
switch (_c.label) {
|
switch (_c.label) {
|
||||||
case 0:
|
case 0:
|
||||||
_i = 0, _a = ObjectUtils.elements(xEle).where(function (x) {
|
_i = 0, _a = ObjectUtils.elements(xEle).where(function (x) {
|
||||||
return x.name == "layer" || x.name == "objectgroup" || x.name == "imagelayer" || x.name == "group";
|
return x.type == "tilelayer" || x.name == "objectgroup" || x.name == "imagelayer" || x.name == "group";
|
||||||
});
|
});
|
||||||
_c.label = 1;
|
_c.label = 1;
|
||||||
case 1:
|
case 1:
|
||||||
if (!(_i < _a.length)) return [3, 10];
|
if (!(_i < _a.length)) return [3, 10];
|
||||||
e = _a[_i];
|
e = _a[_i];
|
||||||
layer = void 0;
|
layer = void 0;
|
||||||
_b = e.name;
|
_b = e.type;
|
||||||
switch (_b) {
|
switch (_b) {
|
||||||
case "layer": return [3, 2];
|
case "tilelayer": return [3, 2];
|
||||||
case "objectgroup": return [3, 3];
|
case "objectgroup": return [3, 3];
|
||||||
case "imagelayer": return [3, 4];
|
case "imagelayer": return [3, 4];
|
||||||
case "group": return [3, 6];
|
case "group": return [3, 6];
|
||||||
@@ -7970,10 +7978,10 @@ var es;
|
|||||||
layer.width = xLayer["width"];
|
layer.width = xLayer["width"];
|
||||||
layer.height = xLayer["height"];
|
layer.height = xLayer["height"];
|
||||||
var xData = xLayer["data"];
|
var xData = xLayer["data"];
|
||||||
var encoding = xData["encoding"];
|
var encoding = xData["encoding"] != undefined ? xData["encoding"] : "csv";
|
||||||
layer.tiles = new Array(width * height);
|
layer.tiles = new Array(width * height);
|
||||||
if (encoding == "base64") {
|
if (encoding == "base64") {
|
||||||
var br = es.TmxUtils.decode(xData, encoding, xData["compression"]);
|
var br = es.TmxUtils.decode(xData.toString(), encoding, xData["compression"]);
|
||||||
var index = 0;
|
var index = 0;
|
||||||
for (var j = 0; j < height; j++) {
|
for (var j = 0; j < height; j++) {
|
||||||
for (var i = 0; i < width; i++) {
|
for (var i = 0; i < width; i++) {
|
||||||
@@ -7983,10 +7991,9 @@ var es;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (encoding == "csv") {
|
else if (encoding == "csv") {
|
||||||
var csvData = es.TmxUtils.decode(xData, encoding, xData["compression"]);
|
|
||||||
var k = 0;
|
var k = 0;
|
||||||
for (var _i = 0, csvData_1 = csvData; _i < csvData_1.length; _i++) {
|
for (var _i = 0, xData_1 = xData; _i < xData_1.length; _i++) {
|
||||||
var s = csvData_1[_i];
|
var s = xData_1[_i];
|
||||||
var gid = s;
|
var gid = s;
|
||||||
var x = k % width;
|
var x = k % width;
|
||||||
var y = k / width;
|
var y = k / width;
|
||||||
@@ -8142,11 +8149,11 @@ var es;
|
|||||||
case 6:
|
case 6:
|
||||||
tileset.properties = this.parsePropertyDict(xTileset["properties"]);
|
tileset.properties = this.parsePropertyDict(xTileset["properties"]);
|
||||||
tileset.tileRegions = new Map();
|
tileset.tileRegions = new Map();
|
||||||
if (tileset.image) {
|
if (tileset.image && tileset.image.bitmap) {
|
||||||
id = firstGid;
|
id = firstGid;
|
||||||
for (y = tileset.margin; y < tileset.image.height - tileset.margin; y += tileset.tileHeight + tileset.spacing) {
|
for (y = tileset.margin; y < tileset.image.bitmap.height - tileset.margin; y += tileset.tileHeight + tileset.spacing) {
|
||||||
column = 0;
|
column = 0;
|
||||||
for (x = tileset.margin; x < tileset.image.width - tileset.margin; x += tileset.tileWidth + tileset.spacing) {
|
for (x = tileset.margin; x < tileset.image.bitmap.width - tileset.margin; x += tileset.tileWidth + tileset.spacing) {
|
||||||
tileset.tileRegions.set(id++, new es.Rectangle(x, y, tileset.tileWidth, tileset.tileHeight));
|
tileset.tileRegions.set(id++, new es.Rectangle(x, y, tileset.tileWidth, tileset.tileHeight));
|
||||||
if (++column >= tileset.columns)
|
if (++column >= tileset.columns)
|
||||||
break;
|
break;
|
||||||
@@ -8155,7 +8162,7 @@ var es;
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
tileset.tiles.forEach(function (tile) {
|
tileset.tiles.forEach(function (tile) {
|
||||||
tileset.tileRegions.set(firstGid + tile.id, new es.Rectangle(0, 0, tile.image.width, tile.image.height));
|
tileset.tileRegions.set(firstGid + tile.id, new es.Rectangle(0, 0, tile.image.bitmap.width, tile.image.bitmap.height));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return [2, tileset];
|
return [2, tileset];
|
||||||
@@ -8537,24 +8544,26 @@ var es;
|
|||||||
ty += (tileHeight - sourceRect.height * scale.y);
|
ty += (tileHeight - sourceRect.height * scale.y);
|
||||||
var pos = new es.Vector2(tx, ty).add(position);
|
var pos = new es.Vector2(tx, ty).add(position);
|
||||||
if (tile.tileset.image) {
|
if (tile.tileset.image) {
|
||||||
if (!tile.tilesetTile.image.bitmap.parent)
|
if (!tile.tileset.image.bitmap.parent)
|
||||||
container.addChild(tile.tilesetTile.image.bitmap);
|
container.addChild(tile.tileset.image.bitmap);
|
||||||
tile.tilesetTile.image.bitmap.x = pos.x;
|
tile.tileset.image.bitmap.x = pos.x;
|
||||||
tile.tilesetTile.image.bitmap.y = pos.y;
|
tile.tileset.image.bitmap.y = pos.y;
|
||||||
tile.tilesetTile.image.bitmap.scaleX = scale.x;
|
tile.tileset.image.bitmap.scaleX = scale.x;
|
||||||
tile.tilesetTile.image.bitmap.scaleY = scale.y;
|
tile.tileset.image.bitmap.scaleY = scale.y;
|
||||||
tile.tilesetTile.image.bitmap.rotation = rotation;
|
tile.tileset.image.bitmap.rotation = rotation;
|
||||||
tile.tilesetTile.image.bitmap.filters = [color];
|
tile.tileset.image.bitmap.filters = [color];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (!tilesetTile.image.bitmap)
|
if (tilesetTile.image.bitmap) {
|
||||||
container.addChild(tilesetTile.image.bitmap);
|
if (!tilesetTile.image.bitmap.parent)
|
||||||
tilesetTile.image.bitmap.x = pos.x;
|
container.addChild(tilesetTile.image.bitmap);
|
||||||
tilesetTile.image.bitmap.y = pos.y;
|
tilesetTile.image.bitmap.x = pos.x;
|
||||||
tilesetTile.image.bitmap.scaleX = scale.x;
|
tilesetTile.image.bitmap.y = pos.y;
|
||||||
tilesetTile.image.bitmap.scaleY = scale.y;
|
tilesetTile.image.bitmap.scaleX = scale.x;
|
||||||
tilesetTile.image.bitmap.rotation = rotation;
|
tilesetTile.image.bitmap.scaleY = scale.y;
|
||||||
tilesetTile.image.bitmap.filters = [color];
|
tilesetTile.image.bitmap.rotation = rotation;
|
||||||
|
tilesetTile.image.bitmap.filters = [color];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return TiledRendering;
|
return TiledRendering;
|
||||||
@@ -8646,17 +8655,16 @@ var es;
|
|||||||
TmxUtils.decode = function (data, encoding, compression) {
|
TmxUtils.decode = function (data, encoding, compression) {
|
||||||
compression = compression || "none";
|
compression = compression || "none";
|
||||||
encoding = encoding || "none";
|
encoding = encoding || "none";
|
||||||
var text = data.children[0].text;
|
|
||||||
switch (encoding) {
|
switch (encoding) {
|
||||||
case "base64":
|
case "base64":
|
||||||
var decoded = es.Base64Utils.decodeBase64AsArray(text, 4);
|
var decoded = es.Base64Utils.decodeBase64AsArray(data, 4);
|
||||||
return (compression === "none") ? decoded : es.Base64Utils.decompress(text, decoded, compression);
|
return (compression === "none") ? decoded : es.Base64Utils.decompress(data, decoded, compression);
|
||||||
case "csv":
|
case "csv":
|
||||||
return es.Base64Utils.decodeCSV(text);
|
return es.Base64Utils.decodeCSV(data);
|
||||||
case "none":
|
case "none":
|
||||||
var datas = [];
|
var datas = [];
|
||||||
for (var i = 0; i < data.children.length; i++) {
|
for (var i = 0; i < data.length; i++) {
|
||||||
datas[i] = +data.children[i].attributes.gid;
|
datas[i] = +data[i].gid;
|
||||||
}
|
}
|
||||||
return datas;
|
return datas;
|
||||||
default:
|
default:
|
||||||
|
|||||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -20,7 +20,13 @@ class ObjectUtils {
|
|||||||
public static elements(p: {}){
|
public static elements(p: {}){
|
||||||
let c = [];
|
let c = [];
|
||||||
for (let i in p){
|
for (let i in p){
|
||||||
c.push(p[i]);
|
if (Array.isArray(p[i])){
|
||||||
|
for (let v of p[i]){
|
||||||
|
c.push(v);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
c.push(p[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
|
|||||||
@@ -59,11 +59,11 @@ module es {
|
|||||||
*/
|
*/
|
||||||
public static async parseLayers(container: any, xEle: any, map: TmxMap, width: number, height: number) {
|
public static async parseLayers(container: any, xEle: any, map: TmxMap, width: number, height: number) {
|
||||||
for (let e of ObjectUtils.elements(xEle).where(x => {
|
for (let e of ObjectUtils.elements(xEle).where(x => {
|
||||||
return x.name == "layer" || x.name == "objectgroup" || x.name == "imagelayer" || x.name == "group"
|
return x.type == "tilelayer" || x.name == "objectgroup" || x.name == "imagelayer" || x.name == "group"
|
||||||
})) {
|
})) {
|
||||||
let layer: ITmxLayer;
|
let layer: ITmxLayer;
|
||||||
switch (e.name) {
|
switch (e.type) {
|
||||||
case "layer":
|
case "tilelayer":
|
||||||
let tileLayer = this.loadTmxLayer(new TmxLayer(), map, e, width, height);
|
let tileLayer = this.loadTmxLayer(new TmxLayer(), map, e, width, height);
|
||||||
layer = tileLayer;
|
layer = tileLayer;
|
||||||
|
|
||||||
@@ -148,11 +148,11 @@ module es {
|
|||||||
layer.height = xLayer["height"];
|
layer.height = xLayer["height"];
|
||||||
|
|
||||||
let xData = xLayer["data"];
|
let xData = xLayer["data"];
|
||||||
let encoding = xData["encoding"];
|
let encoding = xData["encoding"] != undefined ? xData["encoding"] : "csv";
|
||||||
|
|
||||||
layer.tiles = new Array<TmxLayerTile>(width * height);
|
layer.tiles = new Array<TmxLayerTile>(width * height);
|
||||||
if (encoding == "base64") {
|
if (encoding == "base64") {
|
||||||
let br = TmxUtils.decode(xData, encoding, xData["compression"]);
|
let br = TmxUtils.decode(xData.toString(), encoding, xData["compression"]);
|
||||||
let index = 0;
|
let index = 0;
|
||||||
for (let j = 0; j < height; j++) {
|
for (let j = 0; j < height; j++) {
|
||||||
for (let i = 0; i < width; i++) {
|
for (let i = 0; i < width; i++) {
|
||||||
@@ -161,9 +161,9 @@ module es {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (encoding == "csv") {
|
} else if (encoding == "csv") {
|
||||||
let csvData = TmxUtils.decode(xData, encoding, xData["compression"]);
|
// let csvData = TmxUtils.decode(xData.toString(), encoding, xData["compression"]);
|
||||||
let k = 0;
|
let k = 0;
|
||||||
for (let s of csvData) {
|
for (let s of xData) {
|
||||||
let gid = s;
|
let gid = s;
|
||||||
let x = k % width;
|
let x = k % width;
|
||||||
let y = k / width;
|
let y = k / width;
|
||||||
@@ -314,11 +314,11 @@ module es {
|
|||||||
// 缓存我们的源矩形为每个瓷砖,所以我们不必每次我们渲染计算他们。
|
// 缓存我们的源矩形为每个瓷砖,所以我们不必每次我们渲染计算他们。
|
||||||
// 如果我们有一个image,这是一个普通的tileset,否则它是一个image tileset
|
// 如果我们有一个image,这是一个普通的tileset,否则它是一个image tileset
|
||||||
tileset.tileRegions = new Map<number, Rectangle>();
|
tileset.tileRegions = new Map<number, Rectangle>();
|
||||||
if (tileset.image) {
|
if (tileset.image && tileset.image.bitmap) {
|
||||||
let id = firstGid;
|
let id = firstGid;
|
||||||
for (let y = tileset.margin; y < tileset.image.height - tileset.margin; y += tileset.tileHeight + tileset.spacing) {
|
for (let y = tileset.margin; y < tileset.image.bitmap.height - tileset.margin; y += tileset.tileHeight + tileset.spacing) {
|
||||||
let column = 0;
|
let column = 0;
|
||||||
for (let x = tileset.margin; x < tileset.image.width - tileset.margin; x += tileset.tileWidth + tileset.spacing) {
|
for (let x = tileset.margin; x < tileset.image.bitmap.width - tileset.margin; x += tileset.tileWidth + tileset.spacing) {
|
||||||
tileset.tileRegions.set(id++, new Rectangle(x, y, tileset.tileWidth, tileset.tileHeight));
|
tileset.tileRegions.set(id++, new Rectangle(x, y, tileset.tileWidth, tileset.tileHeight));
|
||||||
|
|
||||||
if (++column >= tileset.columns)
|
if (++column >= tileset.columns)
|
||||||
@@ -327,7 +327,7 @@ module es {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
tileset.tiles.forEach(tile => {
|
tileset.tiles.forEach(tile => {
|
||||||
tileset.tileRegions.set(firstGid + tile.id, new Rectangle(0, 0, tile.image.width, tile.image.height));
|
tileset.tileRegions.set(firstGid + tile.id, new Rectangle(0, 0, tile.image.bitmap.width, tile.image.bitmap.height));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -188,23 +188,26 @@ module es {
|
|||||||
|
|
||||||
let pos = new Vector2(tx, ty).add(position);
|
let pos = new Vector2(tx, ty).add(position);
|
||||||
if (tile.tileset.image) {
|
if (tile.tileset.image) {
|
||||||
if (!tile.tilesetTile.image.bitmap.parent)
|
if (!tile.tileset.image.bitmap.parent)
|
||||||
container.addChild(tile.tilesetTile.image.bitmap);
|
container.addChild(tile.tileset.image.bitmap);
|
||||||
tile.tilesetTile.image.bitmap.x = pos.x;
|
tile.tileset.image.bitmap.x = pos.x;
|
||||||
tile.tilesetTile.image.bitmap.y = pos.y;
|
tile.tileset.image.bitmap.y = pos.y;
|
||||||
tile.tilesetTile.image.bitmap.scaleX = scale.x;
|
tile.tileset.image.bitmap.scaleX = scale.x;
|
||||||
tile.tilesetTile.image.bitmap.scaleY = scale.y;
|
tile.tileset.image.bitmap.scaleY = scale.y;
|
||||||
tile.tilesetTile.image.bitmap.rotation = rotation;
|
tile.tileset.image.bitmap.rotation = rotation;
|
||||||
tile.tilesetTile.image.bitmap.filters = [color];
|
tile.tileset.image.bitmap.filters = [color];
|
||||||
} else {
|
} else {
|
||||||
if (!tilesetTile.image.bitmap)
|
if (tilesetTile.image.bitmap){
|
||||||
container.addChild(tilesetTile.image.bitmap);
|
if (!tilesetTile.image.bitmap.parent)
|
||||||
tilesetTile.image.bitmap.x = pos.x;
|
container.addChild(tilesetTile.image.bitmap);
|
||||||
tilesetTile.image.bitmap.y = pos.y;
|
|
||||||
tilesetTile.image.bitmap.scaleX = scale.x;
|
tilesetTile.image.bitmap.x = pos.x;
|
||||||
tilesetTile.image.bitmap.scaleY = scale.y;
|
tilesetTile.image.bitmap.y = pos.y;
|
||||||
tilesetTile.image.bitmap.rotation = rotation;
|
tilesetTile.image.bitmap.scaleX = scale.x;
|
||||||
tilesetTile.image.bitmap.filters = [color];
|
tilesetTile.image.bitmap.scaleY = scale.y;
|
||||||
|
tilesetTile.image.bitmap.rotation = rotation;
|
||||||
|
tilesetTile.image.bitmap.filters = [color];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,19 +12,18 @@ module es {
|
|||||||
static decode(data: any, encoding: any, compression: string): Array<number> {
|
static decode(data: any, encoding: any, compression: string): Array<number> {
|
||||||
compression = compression || "none";
|
compression = compression || "none";
|
||||||
encoding = encoding || "none";
|
encoding = encoding || "none";
|
||||||
var text:string=data.children[0].text;
|
|
||||||
switch (encoding) {
|
switch (encoding) {
|
||||||
case "base64":
|
case "base64":
|
||||||
var decoded = Base64Utils.decodeBase64AsArray(text, 4);
|
var decoded = Base64Utils.decodeBase64AsArray(data, 4);
|
||||||
return (compression === "none") ? decoded : Base64Utils.decompress(text, decoded, compression);
|
return (compression === "none") ? decoded : Base64Utils.decompress(data, decoded, compression);
|
||||||
|
|
||||||
case "csv":
|
case "csv":
|
||||||
return Base64Utils.decodeCSV(text);
|
return Base64Utils.decodeCSV(data);
|
||||||
|
|
||||||
case "none":
|
case "none":
|
||||||
var datas: Array<number> = [];
|
var datas: Array<number> = [];
|
||||||
for (var i: number = 0; i < data.children.length; i++) {
|
for (var i: number = 0; i < data.length; i++) {
|
||||||
datas[i] = +data.children[i].attributes.gid;
|
datas[i] = +data[i].gid;
|
||||||
}
|
}
|
||||||
return datas;
|
return datas;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user