Fixing size of camera on resize
The size of the Camera after a change in zoom is only computed on the "render" step. Therefore, we should wait the "render" step to call GameScene.onResize. Closes #1180
This commit is contained in:
parent
9f9584633c
commit
1fa03e44df
@ -3,6 +3,7 @@ import ScaleManager = Phaser.Scale.ScaleManager;
|
||||
import {coWebsiteManager} from "../../WebRtc/CoWebsiteManager";
|
||||
import type {Game} from "../Game/Game";
|
||||
import {ResizableScene} from "../Login/ResizableScene";
|
||||
import * as Phaser from "phaser";
|
||||
|
||||
|
||||
class WaScaleManager {
|
||||
@ -39,10 +40,11 @@ class WaScaleManager {
|
||||
const style = this.scaleManager.canvas.style;
|
||||
style.width = Math.ceil(realSize.width / devicePixelRatio) + 'px';
|
||||
style.height = Math.ceil(realSize.height / devicePixelRatio) + 'px';
|
||||
// Note: onResize will be called twice (once here and once is Game.ts), but we have no better way.
|
||||
// Note: onResize will be called twice (once here and once in Game.ts), but we have no better way.
|
||||
for (const scene of this.game.scene.getScenes(true)) {
|
||||
if (scene instanceof ResizableScene) {
|
||||
scene.onResize();
|
||||
// We are delaying the call to the "render" event because otherwise, the "camera" coordinates are not correctly updated.
|
||||
scene.events.once(Phaser.Scenes.Events.RENDER, () => scene.onResize());
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user