server/front/src/GameScene.ts
2020-04-05 23:30:22 +02:00

80 lines
2.3 KiB
TypeScript

import Sprite = Phaser.GameObjects.Sprite;
export class GameScene extends Phaser.Scene {
private player: Sprite;
constructor() {
super({
key: "GameScene"
});
}
preload(): void {
this.load.image('tiles', 'maps/tiles.png');
this.load.tilemapTiledJSON('map', 'maps/map2.json');
this.load.spritesheet('player',
'resources/characters/pipoya/Male 01-1.png',
{ frameWidth: 32, frameHeight: 32 }
);
}
init(): void {
}
create(): void {
let mappy = this.add.tilemap("map");
let terrain = mappy.addTilesetImage("tiles", "tiles");
let bottomLayer = mappy.createStaticLayer("Calque 1", [terrain], 0, 0);
let topLayer = mappy.createStaticLayer("Calque 2", [terrain], 0, 0);
// Let's manage animations of the player
this.anims.create({
key: 'down',
frames: this.anims.generateFrameNumbers('player', { start: 0, end: 2 }),
frameRate: 10,
repeat: -1
});
this.anims.create({
key: 'left',
frames: this.anims.generateFrameNumbers('player', { start: 3, end: 5 }),
frameRate: 10,
repeat: -1
});
this.anims.create({
key: 'right',
frames: this.anims.generateFrameNumbers('player', { start: 6, end: 8 }),
frameRate: 10,
repeat: -1
});
this.anims.create({
key: 'up',
frames: this.anims.generateFrameNumbers('player', { start: 9, end: 12 }),
frameRate: 10,
repeat: -1
});
// TODO: create a Player class extending a Character class that itself extends from physics.Sprite.
this.player = this.add.sprite(150, 130, 'player');
this.player.anims.play('right');
//player.setBounce(0.2);
//player.setCollideWorldBounds(true);
}
private angle: number = 0;
update(dt: number): void {
this.cameras.main.scrollX = Math.floor(dt * 0.05);
this.player.x = Math.floor(dt * 0.05) + 150;
//this.cameras.main.scrollX = Math.floor(300 + 300 * Math.cos(this.angle));
//this.cameras.main.scrollY = Math.floor(300 + 300 * Math.sin(this.angle));
this.angle = dt * 0.0001;
}
}