export function createSceneLoader(scene: Phaser.Scene) { const width = scene.cameras.main.width const height = scene.cameras.main.height const progressBox = scene.add.graphics() const progressBar = scene.add.graphics() progressBox.fillStyle(0x222222, 0.8) progressBox.fillRect(width / 2 - 180, height / 2, 320, 50) const loadingText = scene.make.text({ x: width / 2, y: height / 2 - 50, text: 'Loading...', style: { font: '20px monospace', // @ts-ignore fill: '#ffffff' } }) loadingText.setOrigin(0.5, 0.5) scene.load.on(Phaser.Loader.Events.PROGRESS, function (value: any) { progressBar.clear() progressBar.fillStyle(0x368f8b, 1) progressBar.fillRect(width / 2 - 180 + 10, height / 2 + 10, 300 * value, 30) }) scene.load.on(Phaser.Loader.Events.COMPLETE, function () { progressBar.destroy() progressBox.destroy() loadingText.destroy() return true }) }