mirror of
https://github.com/photonstorm/phaser
synced 2024-11-25 06:00:41 +00:00
Texture#getFrameBounds
is a new method that will return the bounds that all of the frames of a given Texture Source encompass. This is useful for things like calculating the bounds of a Sprite Sheet embedded within a Texture Atlas.
This commit is contained in:
parent
085bfa0cac
commit
724ed7ec17
1 changed files with 53 additions and 0 deletions
|
@ -316,6 +316,59 @@ var Texture = new Class({
|
|||
return out;
|
||||
},
|
||||
|
||||
/**
|
||||
* Based on the given Texture Source Index, this method will get all of the Frames using
|
||||
* that source and then work out the bounds that they encompass, returning them in an object.
|
||||
*
|
||||
* This is useful if this Texture is, for example, a sprite sheet within an Atlas, and you
|
||||
* need to know the total bounds of the sprite sheet.
|
||||
*
|
||||
* @method Phaser.Textures.Texture#getFrameBounds
|
||||
* @since 3.80.0
|
||||
*
|
||||
* @param {number} sourceIndex - The index of the TextureSource to get the Frame bounds from.
|
||||
*
|
||||
* @return {Phaser.Types.Math.RectangleLike} An object containing the bounds of the Frames using the given Texture Source Index.
|
||||
*/
|
||||
getFrameBounds: function (sourceIndex)
|
||||
{
|
||||
if (sourceIndex === undefined) { sourceIndex = 0; }
|
||||
|
||||
var frames = this.getFramesFromTextureSource(sourceIndex);
|
||||
|
||||
var minX = Infinity;
|
||||
var minY = Infinity;
|
||||
var maxX = 0;
|
||||
var maxY = 0;
|
||||
|
||||
for (var i = 0; i < frames.length; i++)
|
||||
{
|
||||
var frame = frames[i];
|
||||
|
||||
if (frame.cutX < minX)
|
||||
{
|
||||
minX = frame.cutX;
|
||||
}
|
||||
|
||||
if (frame.cutY < minY)
|
||||
{
|
||||
minY = frame.cutY;
|
||||
}
|
||||
|
||||
if (frame.cutX + frame.cutWidth > maxX)
|
||||
{
|
||||
maxX = frame.cutX + frame.cutWidth;
|
||||
}
|
||||
|
||||
if (frame.cutY + frame.cutHeight > maxY)
|
||||
{
|
||||
maxY = frame.cutY + frame.cutHeight;
|
||||
}
|
||||
}
|
||||
|
||||
return { x: minX, y: minY, width: maxX - minX, height: maxY - minY };
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns an array with all of the names of the Frames in this Texture.
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue