Adding a special scene to wait for server reconnection

This commit is contained in:
David Négrier 2020-05-23 15:43:26 +02:00
parent ab798b1c09
commit 36858f8747
5 changed files with 78 additions and 7 deletions

View file

@ -3,7 +3,7 @@ import {
GroupCreatedUpdatedMessageInterface,
MessageUserJoined,
MessageUserMovedInterface,
MessageUserPositionInterface
MessageUserPositionInterface, PointInterface, PositionInterface
} from "../../Connexion";
import {CurrentGamerInterface, GamerInterface, hasMovedEventName, Player} from "../Player/Player";
import { DEBUG_MODE, RESOLUTION, ROOM, ZOOM_LEVEL} from "../../Enum/EnvironmentVariable";
@ -19,6 +19,10 @@ export enum Textures {
Player = "male1"
}
interface GameSceneInitInterface {
initPosition: PointInterface|null
}
export class GameScene extends Phaser.Scene {
GameManager : GameManager;
Terrains : Array<Phaser.Tilemaps.Tileset>;
@ -33,6 +37,7 @@ export class GameScene extends Phaser.Scene {
startX = 704;// 22 case
startY = 32; // 1 case
circleTexture: CanvasTexture;
initPosition: PositionInterface;
MapKey: string;
MapUrlFile: string;
@ -85,7 +90,9 @@ export class GameScene extends Phaser.Scene {
}
//hook initialisation
init() {}
init(initData : GameSceneInitInterface) {
this.initPosition = initData.initPosition;
}
//hook create scene
create(): void {
@ -209,7 +216,13 @@ export class GameScene extends Phaser.Scene {
/**
* @param layer
*/
private startUser(layer: ITiledMapLayer){
private startUser(layer: ITiledMapLayer): void {
if (this.initPosition !== undefined) {
this.startX = this.initPosition.x;
this.startY = this.initPosition.y;
return;
}
let tiles : any = layer.data;
tiles.forEach((objectKey : number, key: number) => {
if(objectKey === 0){