class EZPIXI extends PIXI.Application {
constructor(settings = {}) {
const width = settings.width || 500;
const height = settings.height || 500;
const backgroundColor = settings.backgroundColor || settings.bgCol;
if (backgroundColor) super({ width, height, backgroundColor });
else super({ width, height });
this.events = {};
this.vars = {};
}
clear() {
const children = this.stage.children;
for(let i = children.length - 1; i >= 0; i--) {
this.stage.removeChild(children[i]);
}
}
AddEvent(name, func) {
if(this.events[name]) this.view.removeEventListener(name, this.events[name]);
this.events[name] = func;
this.view.addEventListener(name, this.events[name]);
}
AddZoom(target, settings = {}) {
const min = settings.min || 0;
const max = settings.max || 1;
const value = settings.value === undefined ? min : settings.value;
const speed = settings.speed || 0.001;
this.vars.zoom = value;
this.AddEvent('wheel', (e) => {
this.vars.zoom -= e.deltaY * speed;
if (this.vars.zoom < min) this.vars.zoom = min;
if (this.vars.zoom > max) this.vars.zoom = max;
target.scale.set(2 ** this.vars.zoom);
e.preventDefault();
});
}
}