covid19-demo/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87a.../pixi-renderers/runtimescene-pixi-renderer.js

88 lines
2.8 KiB
JavaScript

gdjs.RuntimeScenePixiRenderer = function(runtimeScene, runtimeGameRenderer) {
this._pixiRenderer = runtimeGameRenderer
? runtimeGameRenderer.getPIXIRenderer()
: null;
this._runtimeScene = runtimeScene;
this._pixiContainer = new PIXI.Container(); //The Container meant to contains all pixi objects of the scene.
};
gdjs.RuntimeSceneRenderer = gdjs.RuntimeScenePixiRenderer; //Register the class to let the engine use it.
gdjs.RuntimeScenePixiRenderer.prototype.onGameResolutionResized = function() {
if (!this._pixiRenderer) return;
var runtimeGame = this._runtimeScene.getGame();
this._pixiContainer.scale.x =
this._pixiRenderer.width / runtimeGame.getGameResolutionWidth();
this._pixiContainer.scale.y =
this._pixiRenderer.height / runtimeGame.getGameResolutionHeight();
};
gdjs.RuntimeScenePixiRenderer.prototype.render = function() {
if (!this._pixiRenderer) return;
// this._renderProfileText(); //Uncomment to display profiling times
// render the PIXI container of the scene
this._pixiRenderer.backgroundColor = this._runtimeScene.getBackgroundColor();
this._pixiRenderer.render(this._pixiContainer);
};
gdjs.RuntimeScenePixiRenderer.prototype._renderProfileText = function() {
if (!this._runtimeScene.getProfiler()) return;
if (!this._profilerText) {
this._profilerText = new PIXI.Text(" ", {
align: "left",
stroke: "#FFF",
strokeThickness: 1
});
this._pixiContainer.addChild(this._profilerText);
}
var average = this._runtimeScene.getProfiler().getFramesAverageMeasures();
var outputs = [];
gdjs.Profiler.getProfilerSectionTexts("All", average, outputs);
this._profilerText.text = outputs.join("\n");
};
gdjs.RuntimeScenePixiRenderer.prototype.renderDebugDraw = function(instances, layersCameraCoordinates) {
if (!this._debugDraw) {
this._debugDraw = new PIXI.Graphics();
this._pixiContainer.addChild(this._debugDraw);
}
/** @type PIXI.Graphics */
var debugDraw = this._debugDraw;
debugDraw.clear();
debugDraw.beginFill(0x6868e8);
debugDraw.lineStyle(1, 0x6868e8, 1);
debugDraw.fillAlpha = 0.1;
debugDraw.alpha = 0.8;
for(var i = 0;i < instances.length;i++) {
var object = instances[i];
var cameraCoords = layersCameraCoordinates[object.getLayer()];
var rendererObject = object.getRendererObject();
if (!cameraCoords || !rendererObject) continue;
var aabb = object.getAABB();
debugDraw.drawRect(aabb.min[0], aabb.min[1], aabb.max[0] - aabb.min[0], aabb.max[1] - aabb.min[1]);
}
debugDraw.endFill();
};
gdjs.RuntimeScenePixiRenderer.prototype.hideCursor = function() {
this._pixiRenderer.view.style.cursor = "none";
};
gdjs.RuntimeScenePixiRenderer.prototype.showCursor = function() {
this._pixiRenderer.view.style.cursor = "";
};
gdjs.RuntimeScenePixiRenderer.prototype.getPIXIContainer = function() {
return this._pixiContainer;
};