import { Game, Scale, Types, WEBGL } from "phaser"; import { TownScene, LoadingScene } from "./scenes"; import UIPlugin from "./phaser3-rex-plugins/templates/ui/ui-plugin"; import BoardPlugin from "./phaser3-rex-plugins/plugins/board-plugin"; declare global { interface Window { sizeChanged: () => void; game: Game; } } export const gameConfig: Types.Core.GameConfig = { title: "Phaser game tutorial", type: WEBGL, parent: "game", // backgroundColor: '#351f1b', scale: { mode: Scale.ScaleModes.NONE, width: window.innerWidth, height: window.innerHeight, }, physics: { default: "arcade", arcade: { debug: false, }, }, render: { antialiasGL: false, pixelArt: true, }, callbacks: { postBoot: () => { window.sizeChanged(); }, }, canvasStyle: `display: block; width: 100%; height: 100%;`, autoFocus: true, audio: { disableWebAudio: false, }, scene: [LoadingScene, TownScene], dom: { createContainer: true, }, plugins: { scene: [ { key: "rexUI", plugin: UIPlugin, mapping: "rexUI", }, { key: "rexBoard", plugin: BoardPlugin, mapping: "rexBoard", }, ], }, }; window.sizeChanged = () => { if (window.game.isBooted) { setTimeout(() => { window.game.scale.resize(window.innerWidth, window.innerHeight); window.game.canvas.setAttribute( "style", `display: block; width: ${window.innerWidth}px; height: ${window.innerHeight}px;` ); }, 100); } }; window.onresize = () => window.sizeChanged(); window.game = new Game(gameConfig);