agentVerse / ui /src /index.ts
AgentVerse's picture
first commit
670a607
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);