Skip to content

Instantly share code, notes, and snippets.

@maxmonax
Last active November 13, 2018 21:52
Show Gist options
  • Save maxmonax/b465e419fe3e626c2e90272ad271989e to your computer and use it in GitHub Desktop.
Save maxmonax/b465e419fe3e626c2e90272ad271989e to your computer and use it in GitHub Desktop.
Phaser post loader
namespace LoadMng {
export class SceneLoader {
private static _instance: SceneLoader;
private game: Phaser.Game;
isSelectLoaded = false;
isGameLoaded = false;
isFinalLoaded = false;
isAnimFriendlyLoaded = false;
isAnimRealLoaded = false;
isAnimOrderLoaded = false;
isAnimExpLoaded = false;
isAnimBehaveLoaded = false;
isAnimBrokenLoaded = false;
private constructor(game) {
this.game = game;
}
public static getInstance(aGame: Phaser.Game): SceneLoader {
return this._instance || (this._instance = new SceneLoader(aGame));
}
loadMain() {
var loader = new Phaser.Loader(this.game);
loader.atlasJSONArray('select', './assets/atlases/select.png', './assets/atlases/select.json');
loader.onLoadComplete.addOnce(this.onSelectLoaded, this);
loader.start();
}
private onSelectLoaded() {
LogMng.debug('LoadMng: loading complete!');
this.isSelectLoaded = true;
var loader = new Phaser.Loader(this.game);
loader.atlasJSONArray('game', './assets/atlases/game.png', './assets/atlases/game.json');
loader.bitmapFont('brl_fb_demi', './assets/fonts/brl_fb_demi.png', './assets/fonts/brl_fb_demi.xml');
loader.onLoadComplete.addOnce(this.onGameLoaded, this);
loader.start();
}
private onGameLoaded() {
this.isGameLoaded = true;
var loader = new Phaser.Loader(this.game);
loader.atlasJSONArray('final', './assets/atlases/final.png', './assets/atlases/final.json');
loader.onLoadComplete.addOnce(this.onFinalLoaded, this);
loader.start();
}
private onFinalLoaded() {
this.isFinalLoaded = true;
}
// ANIMS
loadAnimFriendly() {
if (this.isAnimFriendlyLoaded) return;
var loader = new Phaser.Loader(this.game);
loader.atlasJSONArray('anim-fr', './assets/atlases/anim-fr.png', './assets/atlases/anim-fr.json');
loader.onLoadComplete.addOnce(this.onAnimFriendlyLoaded, this);
loader.start();
}
private onAnimFriendlyLoaded() {
this.isAnimFriendlyLoaded = true;
}
loadAnimReal() {
if (this.isAnimRealLoaded) return;
var loader = new Phaser.Loader(this.game);
loader.atlasJSONArray('anim-real', './assets/atlases/anim-real.png', './assets/atlases/anim-real.json');
loader.onLoadComplete.addOnce(this.onAnimRealLoaded, this);
loader.start();
}
private onAnimRealLoaded() {
this.isAnimRealLoaded = true;
}
loadAnimOrder() {
if (this.isAnimOrderLoaded) return;
var loader = new Phaser.Loader(this.game);
loader.atlasJSONArray('anim-order', './assets/atlases/anim-order.png', './assets/atlases/anim-order.json');
loader.onLoadComplete.addOnce(this.onAnimOrderLoaded, this);
loader.start();
}
private onAnimOrderLoaded() {
this.isAnimOrderLoaded = true;
}
loadAnimExp() {
if (this.isAnimExpLoaded) return;
var loader = new Phaser.Loader(this.game);
loader.atlasJSONArray('anim-exp', './assets/atlases/anim-exp.png', './assets/atlases/anim-exp.json');
loader.onLoadComplete.addOnce(this.onAnimExpLoaded, this);
loader.start();
}
private onAnimExpLoaded() {
this.isAnimExpLoaded = true;
}
loadAnimBehave() {
if (this.isAnimBehaveLoaded) return;
var loader = new Phaser.Loader(this.game);
loader.atlasJSONArray('anim-beh', './assets/atlases/anim-beh.png', './assets/atlases/anim-beh.json');
loader.onLoadComplete.addOnce(this.onAnimBehaveLoaded, this);
loader.start();
}
private onAnimBehaveLoaded() {
this.isAnimBehaveLoaded = true;
}
loadAnimBroken() {
if (this.isAnimBrokenLoaded) return;
var loader = new Phaser.Loader(this.game);
loader.atlasJSONArray('anim-broken', './assets/atlases/anim-broken.png', './assets/atlases/anim-broken.json');
loader.onLoadComplete.addOnce(this.onAnimBrokenLoaded, this);
loader.start();
}
private onAnimBrokenLoaded() {
this.isAnimBrokenLoaded = true;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment