started skeleton and zombie, added GUI and menu system

Signed-off-by: Pascal Syma <pascal@syma.dev>
This commit is contained in:
2020-07-16 04:42:39 +02:00
parent e3b9eff67d
commit f1d6c7d69f
15 changed files with 1636 additions and 80 deletions
+78
View File
@@ -0,0 +1,78 @@
/*
* Copyright (c) 2020. Antonio Martinez Casadesus and Pascal Syma.
* All rights reserved.
*/
import TextElement from "../TextElement";
import Player from "../entities/Player";
export default class GUI extends Phaser.Scene {
constructor() {
super({
key: "GUI",
pixelArt: true,
physics: {
default: 'arcade',
arcade: {
gravity: {y: 0}
}
}
});
}
create() {
const key = this.scene.settings.data.key;
const map = this.make.tilemap({key: "menu"});
const menuTileset = map.addTilesetImage("menu", "menutiles", 16, 16);
const buttonTileset = map.addTilesetImage("button", "buttontiles", 16, 16);
map.layers.filter(obj => obj.name.startsWith(key)).forEach(l => map.createStaticLayer(l.name, [menuTileset, buttonTileset], 0, 0))
this.cameras.main.setBounds(0, 0, map.widthInPixels, map.heightInPixels);
map.objects.filter(obj => obj.name === key + "Objects")[0].objects.filter(obj => obj.type === "text").forEach(s => {
new TextElement(this, s);
});
map.objects.filter(obj => obj.name === key + "Objects")[0].objects.filter(obj => obj.type === "selectChar").forEach(s => {
const charKey = s.name;
this.anims.create({
key: 'idle' + charKey,
frames: this.anims.generateFrameNumbers('char' + charKey, {start: 126, end: 131}),
frameRate: 10,
repeat: -1
});
new Player(this, s, 'char' + charKey).play('idle' + charKey, true)
.setInteractive()
.on('pointerdown', () => {
if (this.textures.exists('char'))
this.textures.removeKey('char');
this.textures.addSpriteSheet('char', this.textures.get('char' + charKey).getSourceImage(), {
frameWidth: 79,
frameHeight: 63,
margin: 1,
spacing: 2
});
this.anims.remove('idle');
this.anims.create({
key: 'idle',
frames: this.anims.generateFrameNumbers('char', {start: 126, end: 131}),
frameRate: 10,
repeat: -1
});
this.scene.start('Game');
})
});
}
}