68 lines
2.4 KiB
TypeScript
68 lines
2.4 KiB
TypeScript
import {TextField} from "../Components/TextField";
|
|
import Image = Phaser.GameObjects.Image;
|
|
import Sprite = Phaser.GameObjects.Sprite;
|
|
import Text = Phaser.GameObjects.Text;
|
|
|
|
export const FourOFourSceneName = "FourOFourScene";
|
|
enum Textures {
|
|
icon = "icon",
|
|
mainFont = "main_font"
|
|
}
|
|
|
|
export class FourOFourScene extends Phaser.Scene {
|
|
private mapNotFoundField!: TextField;
|
|
private couldNotFindField!: TextField;
|
|
private fileNameField!: Text;
|
|
private logo!: Image;
|
|
private cat!: Sprite;
|
|
private file: string|undefined;
|
|
private url: string|undefined;
|
|
|
|
constructor() {
|
|
super({
|
|
key: FourOFourSceneName
|
|
});
|
|
}
|
|
|
|
init({ file, url }: { file?: string, url?: string }) {
|
|
this.file = file;
|
|
this.url = url;
|
|
}
|
|
|
|
preload() {
|
|
this.load.image(Textures.icon, "resources/logos/tcm_full.png");
|
|
// Note: arcade.png from the Phaser 3 examples at: https://github.com/photonstorm/phaser3-examples/tree/master/public/assets/fonts/bitmap
|
|
this.load.bitmapFont(Textures.mainFont, 'resources/fonts/arcade.png', 'resources/fonts/arcade.xml');
|
|
this.load.spritesheet(
|
|
'cat',
|
|
'resources/characters/pipoya/Cat 01-1.png',
|
|
{frameWidth: 32, frameHeight: 32}
|
|
);
|
|
}
|
|
|
|
create() {
|
|
this.logo = new Image(this, this.game.renderer.width - 30, this.game.renderer.height - 20, Textures.icon);
|
|
this.add.existing(this.logo);
|
|
|
|
this.mapNotFoundField = new TextField(this, this.game.renderer.width / 2, this.game.renderer.height / 2, "404 - File not found");
|
|
|
|
let text: string = '';
|
|
if (this.file !== undefined) {
|
|
text = "Could not load map"
|
|
}
|
|
if (this.url !== undefined) {
|
|
text = "Invalid URL"
|
|
}
|
|
|
|
this.couldNotFindField = new TextField(this, this.game.renderer.width / 2, this.game.renderer.height / 2 + 24, text);
|
|
|
|
const url = this.file ? this.file : this.url;
|
|
if (url !== undefined) {
|
|
this.fileNameField = this.add.text(this.game.renderer.width / 2, this.game.renderer.height / 2 + 38, url, { fontFamily: 'Georgia, "Goudy Bookletter 1911", Times, serif', fontSize: '10px' });
|
|
this.fileNameField.setOrigin(0.5, 0.5);
|
|
}
|
|
|
|
this.cat = this.physics.add.sprite(this.game.renderer.width / 2, this.game.renderer.height / 2 - 32, 'cat', 6);
|
|
this.cat.flipY=true;
|
|
}
|
|
}
|