mirror of
https://github.com/photonstorm/phaser
synced 2024-11-27 23:20:59 +00:00
Added setCrop support
This commit is contained in:
parent
436d92831c
commit
744e161d22
1 changed files with 67 additions and 0 deletions
|
@ -34,6 +34,73 @@ var Texture = {
|
|||
*/
|
||||
frame: null,
|
||||
|
||||
/**
|
||||
* A boolean flag indicating if this Game Object is being cropped or not.
|
||||
* You can toggle this at any time after `setCrop` has been called, to turn cropping on or off.
|
||||
* Equally, calling `setCrop` with no arguments will reset the crop and disable it.
|
||||
*
|
||||
* @name Phaser.GameObjects.Components.Texture#isCropped
|
||||
* @type {boolean}
|
||||
* @since 3.11.0
|
||||
*/
|
||||
isCropped: false,
|
||||
|
||||
/**
|
||||
* The internal crop data object, as used by `setCrop` and passed to the `Frame.getCropUVs` method.
|
||||
*
|
||||
* @name Phaser.GameObjects.Components.Texture#isCropped
|
||||
* @type {object}
|
||||
* @private
|
||||
* @since 3.11.0
|
||||
*/
|
||||
_crop: { u0: 0, v0: 0, u1: 0, v1: 0, width: 0, height: 0, x: 0, y: 0 },
|
||||
|
||||
/**
|
||||
* Applies a crop to a texture based Game Object, such as a Sprite or Image.
|
||||
*
|
||||
* The crop is a rectangle that limits the area of the texture frame that is visible during rendering.
|
||||
*
|
||||
* Cropping a Game Object does not change its size, dimensions, physics body or hit area, it just
|
||||
* changes what is shown when rendered.
|
||||
*
|
||||
* The crop coordinates are relative to the texture frame, not the Game Object, meaning 0 x 0 is the top-left.
|
||||
*
|
||||
* Therefore, if you had a Game Object that had an 800x600 sized texture, and you wanted to show only the left
|
||||
* half of it, you could call `setCrop(0, 0, 400, 600)`.
|
||||
*
|
||||
* Call this method with no arguments to reset the crop, or toggle the property `isCropped` to `false`.
|
||||
*
|
||||
* You should do this if the crop rectangle becomes the same size as the frame itself, as it will allow
|
||||
* the renderer to skip several internal calculations.
|
||||
*
|
||||
* @method Phaser.GameObjects.Components.Texture#setCrop
|
||||
* @since 3.11.0
|
||||
*
|
||||
* @param {number} [x] - The x coordinate to start the crop from.
|
||||
* @param {number} [y] - The y coordinate to start the crop from.
|
||||
* @param {number} [width] - The width of the crop rectangle in pixels.
|
||||
* @param {number} [height] - The height of the crop rectangle in pixels.
|
||||
*
|
||||
* @return {this} This Game Object instance.
|
||||
*/
|
||||
setCrop: function (x, y, width, height)
|
||||
{
|
||||
if (x === undefined)
|
||||
{
|
||||
this.isCropped = false;
|
||||
}
|
||||
else if (this.frame)
|
||||
{
|
||||
this._crop = this.frame.getCropUVs(this._crop, x, y, width, height);
|
||||
|
||||
console.log(this._crop);
|
||||
|
||||
this.isCropped = true;
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Sets the texture and frame this Game Object will use to render with.
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue