phaser/src/tilemap/Tileset.js

103 lines
1.8 KiB
JavaScript
Raw Normal View History

2013-10-16 20:25:51 +00:00
Phaser.Tileset = function (image, key, tileWidth, tileHeight, tileMargin, tileSpacing) {
if (typeof tileMargin === "undefined") { tileMargin = 0; }
if (typeof tileSpacing === "undefined") { tileSpacing = 0; }
/**
* @property {string} key - The cache ID.
*/
this.key = key;
2013-10-11 05:30:28 +00:00
this.image = image;
this.tileWidth = tileWidth;
this.tileHeight = tileHeight;
2013-10-16 20:25:51 +00:00
this.margin = tileMargin;
this.spacing = tileSpacing;
2013-10-11 05:30:28 +00:00
this.tiles = [];
}
Phaser.Tileset.prototype = {
addTile: function (tile) {
2013-10-11 05:30:28 +00:00
this.tiles.push(tile);
return tile;
},
getTile: function (index) {
2013-10-11 05:30:28 +00:00
if (this.tiles[index])
{
2013-10-11 05:30:28 +00:00
return this.tiles[index];
}
return null;
2013-10-11 05:30:28 +00:00
},
2013-10-16 20:25:51 +00:00
setSpacing: function (margin, spacing) {
this.tileMargin = margin;
this.tileSpacing = spacing;
},
canCollide: function (index) {
if (this.tiles[index])
{
return this.tiles[index].collideNone;
}
return null;
},
2013-10-11 05:30:28 +00:00
checkTileIndex: function (index) {
return (this.tiles[index]);
2013-10-11 05:30:28 +00:00
},
setCollisionRange: function (start, stop, left, right, up, down) {
if (this.tiles[start] && this.tiles[stop] && start < stop)
{
for (var i = start; i <= stop; i++)
{
this.tiles[i].setCollision(left, right, up, down);
}
}
},
setCollision: function (index, left, right, up, down) {
if (this.tiles[index])
{
this.tiles[index].setCollision(left, right, up, down);
}
}
}
/**
* @name Phaser.Tileset#total
* @property {number} total - The total number of tiles in this Tileset.
* @readonly
*/
Object.defineProperty(Phaser.Tileset.prototype, "total", {
get: function () {
2013-10-11 05:30:28 +00:00
return this.tiles.length;
}
});