2018-02-12 16:01:20 +00:00
|
|
|
/**
|
|
|
|
* @author Richard Davey <rich@photonstorm.com>
|
|
|
|
* @copyright 2018 Photon Storm Ltd.
|
|
|
|
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
|
|
|
|
*/
|
|
|
|
|
2017-02-23 03:10:48 +00:00
|
|
|
// bitmask flag for GameObject.renderMask
|
|
|
|
var _FLAG = 8; // 1000
|
2017-02-21 01:04:11 +00:00
|
|
|
|
2018-02-01 01:09:34 +00:00
|
|
|
/**
|
|
|
|
* Provides methods used for getting and setting the texture of a Game Object.
|
|
|
|
*
|
|
|
|
* @name Phaser.GameObjects.Components.Texture
|
|
|
|
* @since 3.0.0
|
|
|
|
*/
|
|
|
|
|
2017-02-23 03:10:48 +00:00
|
|
|
var Texture = {
|
2017-02-21 01:04:11 +00:00
|
|
|
|
2018-02-01 01:09:34 +00:00
|
|
|
/**
|
|
|
|
* The Texture this Game Object is using to render with.
|
|
|
|
*
|
|
|
|
* @name Phaser.GameObjects.Components.Texture#texture
|
|
|
|
* @type {Phaser.Textures.Texture}
|
|
|
|
* @since 3.0.0
|
|
|
|
*/
|
2017-02-23 03:10:48 +00:00
|
|
|
texture: null,
|
2018-02-01 01:09:34 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* The Texture Frame this Game Object is using to render with.
|
|
|
|
*
|
|
|
|
* @name Phaser.GameObjects.Components.Texture#frame
|
|
|
|
* @type {Phaser.Textures.Frame}
|
|
|
|
* @since 3.0.0
|
|
|
|
*/
|
2017-02-23 03:10:48 +00:00
|
|
|
frame: null,
|
|
|
|
|
2018-02-01 01:09:34 +00:00
|
|
|
/**
|
|
|
|
* Sets the texture and frame this Game Object will use to render with.
|
|
|
|
*
|
|
|
|
* Textures are referenced by their string-based keys, as stored in the Texture Manager.
|
|
|
|
*
|
2018-02-01 01:36:52 +00:00
|
|
|
* @method Phaser.GameObjects.Components.Texture#setTexture
|
2018-02-01 01:09:34 +00:00
|
|
|
* @since 3.0.0
|
|
|
|
*
|
|
|
|
* @param {string} key - The key of the texture to be used, as stored in the Texture Manager.
|
|
|
|
* @param {string|integer} [frame] - The name or index of the frame within the Texture.
|
|
|
|
*
|
|
|
|
* @return {Phaser.GameObjects.GameObject} This Game Object instance.
|
|
|
|
*/
|
2017-02-23 03:10:48 +00:00
|
|
|
setTexture: function (key, frame)
|
|
|
|
{
|
2017-07-14 13:30:20 +00:00
|
|
|
this.texture = this.scene.sys.textures.get(key);
|
2017-02-23 03:10:48 +00:00
|
|
|
|
2017-08-14 12:12:45 +00:00
|
|
|
return this.setFrame(frame);
|
|
|
|
},
|
|
|
|
|
2018-02-01 01:09:34 +00:00
|
|
|
/**
|
|
|
|
* Sets the frame this Game Object will use to render with.
|
|
|
|
*
|
|
|
|
* The Frame has to belong to the current Texture being used.
|
|
|
|
*
|
|
|
|
* It can be either a string or an index.
|
|
|
|
*
|
2018-02-01 01:36:52 +00:00
|
|
|
* @method Phaser.GameObjects.Components.Texture#setFrame
|
2018-02-01 01:09:34 +00:00
|
|
|
* @since 3.0.0
|
|
|
|
*
|
|
|
|
* @param {string|integer} frame - The name or index of the frame within the Texture.
|
|
|
|
*
|
|
|
|
* @return {Phaser.GameObjects.GameObject} This Game Object instance.
|
|
|
|
*/
|
2017-08-14 12:12:45 +00:00
|
|
|
setFrame: function (frame)
|
|
|
|
{
|
2017-02-23 03:10:48 +00:00
|
|
|
this.frame = this.texture.get(frame);
|
2017-02-21 01:04:11 +00:00
|
|
|
|
2017-02-23 03:10:48 +00:00
|
|
|
if (!this.frame.cutWidth || !this.frame.cutHeight)
|
|
|
|
{
|
|
|
|
this.renderFlags &= ~_FLAG;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
this.renderFlags |= _FLAG;
|
|
|
|
}
|
2017-03-02 02:05:33 +00:00
|
|
|
|
2018-02-09 15:21:39 +00:00
|
|
|
if (this.frame.customPivot)
|
|
|
|
{
|
|
|
|
this.setOrigin(this.frame.pivotX, this.frame.pivotY);
|
|
|
|
}
|
|
|
|
|
2017-03-02 02:05:33 +00:00
|
|
|
return this;
|
2017-02-23 03:10:48 +00:00
|
|
|
}
|
2017-02-21 01:04:11 +00:00
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = Texture;
|