35 lines
949 B
TypeScript
35 lines
949 B
TypeScript
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
|
|
})
|
|
}
|