Create exception error

This commit is contained in:
Gregoire Parant 2020-12-18 14:30:46 +01:00
parent f5dd5efc0e
commit 323fa6abba
3 changed files with 25 additions and 21 deletions

View File

@ -0,0 +1 @@
export class TextureError extends Error{}

View File

@ -3,6 +3,7 @@ import {SpeechBubble} from "./SpeechBubble";
import BitmapText = Phaser.GameObjects.BitmapText;
import Container = Phaser.GameObjects.Container;
import Sprite = Phaser.GameObjects.Sprite;
import {TextureError} from "../../Exception/TextureError";
export interface PlayerResourceDescriptionInterface {
name: string,
@ -94,6 +95,9 @@ export abstract class Character extends Container {
public addTextures(textures: string[], frame?: string | number): void {
for (const texture of textures) {
if(!this.scene.textures.exists(texture)){
throw new TextureError('texture not found');
}
const sprite = new Sprite(this.scene, 0, 0, texture, frame);
sprite.setInteractive({useHandCursor: true});
this.add(sprite);
@ -154,10 +158,7 @@ export abstract class Character extends Container {
if (moving && (!sprite.anims.currentAnim || sprite.anims.currentAnim.key !== direction)) {
sprite.play(texture+'-'+direction, true);
} else if (!moving) {
/*if (this.anims.currentAnim) {
this.anims.stop();
}*/
sprite.play(texture+'-'+direction, true);
sprite.anims.play(texture + '-' + direction, true);
sprite.anims.stop();
}
}

View File

@ -64,6 +64,7 @@ import {PresentationModeIcon} from "../Components/PresentationModeIcon";
import {ChatModeIcon} from "../Components/ChatModeIcon";
import {OpenChatIcon, openChatIconName} from "../Components/OpenChatIcon";
import {SelectCharacterScene, SelectCharacterSceneName} from "../Login/SelectCharacterScene";
import {TextureError} from "../../Exception/TextureError";
export interface GameSceneInitInterface {
initPosition: PointInterface|null,
@ -376,13 +377,7 @@ export class GameScene extends ResizableScene implements CenterListener {
mediaManager.setUserInputManager(this.userInputManager);
//notify game manager can to create currentUser in map
try {
this.createCurrentPlayer();
}catch (err){
//permit to return on character custom if any there any changes frame in the new version
gameManager.leaveGame(this, SelectCharacterSceneName, new SelectCharacterScene());
throw 'characterLayers are not invalid';
}
this.createCurrentPlayer();
//initialise camera
this.initCamera();
@ -829,16 +824,23 @@ export class GameScene extends ResizableScene implements CenterListener {
createCurrentPlayer(){
//initialise player
//TODO create animation moving between exit and start
this.CurrentPlayer = new Player(
this,
this.startX,
this.startY,
this.playerName,
this.characterLayers,
PlayerAnimationNames.WalkDown,
false,
this.userInputManager
);
try {
this.CurrentPlayer = new Player(
this,
this.startX,
this.startY,
this.playerName,
this.characterLayers,
PlayerAnimationNames.WalkDown,
false,
this.userInputManager
);
}catch (err){
if(err instanceof TextureError) {
gameManager.leaveGame(this, SelectCharacterSceneName, new SelectCharacterScene());
throw err;
}
}
//create collision
this.createCollisionWithPlayer();