created a class to centralize all the load operations
This commit is contained in:
parent
833e7554f4
commit
d6fa7454e3
2 changed files with 47 additions and 12 deletions
|
@ -1,4 +1,5 @@
|
||||||
import {RESOLUTION} from "./Enum/EnvironmentVariable";
|
import {RESOLUTION} from "./Enum/EnvironmentVariable";
|
||||||
|
import {RessourceManager, RessourceNames} from "./RessourceManager";
|
||||||
|
|
||||||
export class GameScene extends Phaser.Scene {
|
export class GameScene extends Phaser.Scene {
|
||||||
private player: Phaser.GameObjects.Sprite;
|
private player: Phaser.GameObjects.Sprite;
|
||||||
|
@ -12,6 +13,7 @@ export class GameScene extends Phaser.Scene {
|
||||||
private keyUp: Phaser.Input.Keyboard.Key;
|
private keyUp: Phaser.Input.Keyboard.Key;
|
||||||
private keyDown: Phaser.Input.Keyboard.Key;
|
private keyDown: Phaser.Input.Keyboard.Key;
|
||||||
private keyShift: Phaser.Input.Keyboard.Key;
|
private keyShift: Phaser.Input.Keyboard.Key;
|
||||||
|
private ressourceManager: RessourceManager;
|
||||||
|
|
||||||
private Mappy : Phaser.Tilemaps.Tilemap;
|
private Mappy : Phaser.Tilemaps.Tilemap;
|
||||||
|
|
||||||
|
@ -22,15 +24,11 @@ export class GameScene extends Phaser.Scene {
|
||||||
super({
|
super({
|
||||||
key: "GameScene"
|
key: "GameScene"
|
||||||
});
|
});
|
||||||
|
this.ressourceManager = new RessourceManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
preload(): void {
|
preload(): void {
|
||||||
this.load.image('tiles', 'maps/tiles.png');
|
this.ressourceManager.load(this.load)
|
||||||
this.load.tilemapTiledJSON('map', 'maps/map2.json');
|
|
||||||
this.load.spritesheet('player',
|
|
||||||
'resources/characters/pipoya/Male 01-1.png',
|
|
||||||
{ frameWidth: 32, frameHeight: 32 }
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
init(): void {
|
init(): void {
|
||||||
|
@ -62,37 +60,37 @@ export class GameScene extends Phaser.Scene {
|
||||||
// Let's manage animations of the player
|
// Let's manage animations of the player
|
||||||
this.anims.create({
|
this.anims.create({
|
||||||
key: 'down',
|
key: 'down',
|
||||||
frames: this.anims.generateFrameNumbers('player', { start: 0, end: 2 }),
|
frames: this.anims.generateFrameNumbers(RessourceNames.Player, { start: 0, end: 2 }),
|
||||||
frameRate: 10,
|
frameRate: 10,
|
||||||
repeat: -1
|
repeat: -1
|
||||||
});
|
});
|
||||||
|
|
||||||
this.anims.create({
|
this.anims.create({
|
||||||
key: 'left',
|
key: 'left',
|
||||||
frames: this.anims.generateFrameNumbers('player', { start: 3, end: 5 }),
|
frames: this.anims.generateFrameNumbers(RessourceNames.Player, { start: 3, end: 5 }),
|
||||||
frameRate: 10,
|
frameRate: 10,
|
||||||
repeat: -1
|
repeat: -1
|
||||||
});
|
});
|
||||||
|
|
||||||
this.anims.create({
|
this.anims.create({
|
||||||
key: 'right',
|
key: 'right',
|
||||||
frames: this.anims.generateFrameNumbers('player', { start: 6, end: 8 }),
|
frames: this.anims.generateFrameNumbers(RessourceNames.Player, { start: 6, end: 8 }),
|
||||||
frameRate: 10,
|
frameRate: 10,
|
||||||
repeat: -1
|
repeat: -1
|
||||||
});
|
});
|
||||||
|
|
||||||
this.anims.create({
|
this.anims.create({
|
||||||
key: 'up',
|
key: 'up',
|
||||||
frames: this.anims.generateFrameNumbers('player', { start: 9, end: 11 }),
|
frames: this.anims.generateFrameNumbers(RessourceNames.Player, { start: 9, end: 11 }),
|
||||||
frameRate: 10,
|
frameRate: 10,
|
||||||
repeat: -1
|
repeat: -1
|
||||||
});
|
});
|
||||||
|
|
||||||
//let player = this.add.sprite(450, 450, 'player');
|
//let player = this.add.sprite(450, 450, RessourceNames.Player);
|
||||||
//player.anims.play('down');
|
//player.anims.play('down');
|
||||||
//player.setBounce(0.2);
|
//player.setBounce(0.2);
|
||||||
//player.setCollideWorldBounds(true);
|
//player.setCollideWorldBounds(true);
|
||||||
this.player = this.add.sprite(this.startX, this.startY, 'player');
|
this.player = this.add.sprite(this.startX, this.startY, RessourceNames.Player);
|
||||||
}
|
}
|
||||||
|
|
||||||
private angle: number = 0;
|
private angle: number = 0;
|
||||||
|
|
37
front/src/RessourceManager.ts
Normal file
37
front/src/RessourceManager.ts
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
export enum RessourceNames {
|
||||||
|
Tiles = 'tiles',
|
||||||
|
Map = 'map',
|
||||||
|
Player = 'player',
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum RessourceTypes {
|
||||||
|
Image = 1,
|
||||||
|
JsonImage,
|
||||||
|
Spritesheet,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//the class responsible for loading all the external image ressources
|
||||||
|
export class RessourceManager {
|
||||||
|
private data = [
|
||||||
|
{name: RessourceNames.Tiles, path: 'maps/tiles.png', type: RessourceTypes.Image},
|
||||||
|
{name: RessourceNames.Map, path: 'maps/map2.json', type: RessourceTypes.JsonImage},
|
||||||
|
{name: RessourceNames.Player, path: 'resources/characters/pipoya/Male 01-1.png', type: RessourceTypes.Spritesheet, config: { frameWidth: 32, frameHeight: 32 }},
|
||||||
|
];
|
||||||
|
|
||||||
|
load(load: Phaser.Loader.LoaderPlugin) {
|
||||||
|
this.data.forEach(d => {
|
||||||
|
switch (d.type) {
|
||||||
|
case RessourceTypes.Image:
|
||||||
|
load.image(d.name, d.path);
|
||||||
|
break;
|
||||||
|
case RessourceTypes.JsonImage:
|
||||||
|
load.tilemapTiledJSON(d.name, d.path);
|
||||||
|
break;
|
||||||
|
case RessourceTypes.Spritesheet:
|
||||||
|
load.spritesheet(d.name, d.path, d.config)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue