84 lines
2.7 KiB
JavaScript
84 lines
2.7 KiB
JavaScript
gdjs.LoadingScreenPixiRenderer = function(runtimeGamePixiRenderer, loadingScreenSetup) {
|
|
this._pixiRenderer = runtimeGamePixiRenderer.getPIXIRenderer();
|
|
if (!this._pixiRenderer) {
|
|
// A PIXI Renderer can be missing during tests, when creating a runtime game
|
|
// without a canvas.
|
|
return;
|
|
}
|
|
|
|
this._loadingScreen = new PIXI.Container();
|
|
|
|
this._progressText = new PIXI.Text(' ', {
|
|
fontSize: '30px',
|
|
fontFamily: 'Arial',
|
|
fill: '#FFFFFF',
|
|
align: 'center',
|
|
});
|
|
this._loadingScreen.addChild(this._progressText);
|
|
|
|
if (loadingScreenSetup && loadingScreenSetup.showGDevelopSplash) {
|
|
this._madeWithText = new PIXI.Text('Made with', {
|
|
fontSize: '30px',
|
|
fontFamily: 'Arial',
|
|
fill: '#FFFFFF',
|
|
align: 'center',
|
|
});
|
|
this._madeWithText.position.y = this._pixiRenderer.height / 2 - 130;
|
|
this._websiteText = new PIXI.Text('gdevelop-app.com', {
|
|
fontSize: '30px',
|
|
fontFamily: 'Arial',
|
|
fill: '#FFFFFF',
|
|
align: 'center',
|
|
});
|
|
this._websiteText.position.y = this._pixiRenderer.height / 2 + 100;
|
|
|
|
this._splashImage = new PIXI.Sprite.fromImage(gdjs.splashImage);
|
|
this._splashImage.position.x = this._pixiRenderer.width / 2;
|
|
this._splashImage.position.y = this._pixiRenderer.height / 2;
|
|
this._splashImage.anchor.x = 0.5;
|
|
this._splashImage.anchor.y = 0.5;
|
|
this._splashImage.scale.x = this._pixiRenderer.width / 800;
|
|
this._splashImage.scale.y = this._pixiRenderer.width / 800;
|
|
this._loadingScreen.addChild(this._splashImage);
|
|
this._loadingScreen.addChild(this._madeWithText);
|
|
this._loadingScreen.addChild(this._websiteText);
|
|
}
|
|
};
|
|
|
|
gdjs.LoadingScreenRenderer = gdjs.LoadingScreenPixiRenderer; //Register the class to let the engine use it.
|
|
|
|
gdjs.LoadingScreenPixiRenderer.prototype.render = function(percent) {
|
|
if (!this._pixiRenderer) {
|
|
return;
|
|
}
|
|
|
|
var screenBorder = 10;
|
|
|
|
if (this._madeWithText) {
|
|
this._madeWithText.position.x =
|
|
this._pixiRenderer.width / 2 - this._madeWithText.width / 2;
|
|
this._madeWithText.position.y =
|
|
this._pixiRenderer.height / 2 -
|
|
this._splashImage.height / 2 -
|
|
this._madeWithText.height -
|
|
20;
|
|
}
|
|
if (this._websiteText) {
|
|
this._websiteText.position.x =
|
|
this._pixiRenderer.width - this._websiteText.width - screenBorder;
|
|
this._websiteText.position.y =
|
|
this._pixiRenderer.height - this._websiteText.height - screenBorder;
|
|
}
|
|
|
|
this._progressText.text = percent + '%';
|
|
this._progressText.position.x = screenBorder;
|
|
this._progressText.position.y =
|
|
this._pixiRenderer.height - this._progressText.height - screenBorder;
|
|
|
|
this._pixiRenderer.render(this._loadingScreen);
|
|
};
|
|
|
|
gdjs.LoadingScreenPixiRenderer.prototype.unload = function() {
|
|
// Nothing to do
|
|
};
|