avg-core-ts
Version:
Develop Adventure Game (or ADV, Visual Novel, Galgame, etc.) on your own!
53 lines (44 loc) • 1.14 kB
JavaScript
/**
* @file Sprite class
* @author MicroMatrix <yangpan.1985@bytedance.com>
* @copyright 2012-2020 bytedance
* @link git@code.byted.org:yangpan.1985/avg.git
*/
const PIXI = require('pixi.js');
/**
* Class representing a Sprite.
* @extends PIXI.Sprite
*/
class Sprite extends PIXI.Sprite {
/**
* Create a sprite.
* It is a empty sprite, you should specify its content (use {@link Sprite#setFile}, for example)
* and call {@link Sprite#execSync}.
*/
constructor() {
super();
this.zorder = 0;
this._rectangle = null;
}
set rectangle(value) {
this._rectangle = value;
if (this.texture) {
const baseTexture = this.texture.baseTexture;
this.texture.destroy();
this.texture = new PIXI.Texture(baseTexture, this._rectangle);
}
}
get rectangle() {
return this._rectangle;
}
set src(value) {
if (this.texture) {
this.texture.destroy();
this.texture = new PIXI.Texture(value, this._rectangle);
} else {
this.texture = new PIXI.Texture(value, this._rectangle);
value.destroy();
}
}
}
export default Sprite;