47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
|
import KeyboardKeydownCallback = Phaser.Types.Input.Keyboard.KeyboardKeydownCallback;
|
||
|
import {gameManager} from "../Game/GameManager";
|
||
|
import {ROOM} from "../../Enum/EnvironmentVariable";
|
||
|
import {TextField} from "../Components/TextField";
|
||
|
import {TextInput} from "../Components/TextInput";
|
||
|
import {ClickButton} from "../Components/ClickButton";
|
||
|
|
||
|
//todo: put this constants in a dedicated file
|
||
|
export const LoginSceneName = "LoginScene";
|
||
|
enum LoginTextures {
|
||
|
playButton = "play_button",
|
||
|
}
|
||
|
|
||
|
export class LogincScene extends Phaser.Scene {
|
||
|
private emailInput: TextInput;
|
||
|
private textField: TextField;
|
||
|
private playButton: ClickButton;
|
||
|
constructor() {
|
||
|
super({
|
||
|
key: LoginSceneName
|
||
|
});
|
||
|
}
|
||
|
|
||
|
preload() {
|
||
|
this.load.image(LoginTextures.playButton, "resources/objects/play_button.png");
|
||
|
}
|
||
|
|
||
|
create() {
|
||
|
this.textField = new TextField(this, 10, 10, 'Enter your email:');
|
||
|
this.emailInput = new TextInput(this, 10, 50);
|
||
|
|
||
|
let x = this.game.renderer.width / 2;
|
||
|
let y = this.game.renderer.height / 2;
|
||
|
this.playButton = new ClickButton(this, x, y, LoginTextures.playButton, this.login.bind(this));
|
||
|
}
|
||
|
|
||
|
update(time: number, delta: number): void {
|
||
|
|
||
|
}
|
||
|
|
||
|
async login() {
|
||
|
let email = this.emailInput.text;
|
||
|
if (!email) return;
|
||
|
await gameManager.connect(email);
|
||
|
this.scene.start("GameScene");
|
||
|
}
|
||
|
}
|