fixed the player animations

This commit is contained in:
kharhamel 2020-04-12 18:28:05 +02:00
parent d1106d757d
commit 97a55ab66c
3 changed files with 21 additions and 18 deletions

View file

@ -6,7 +6,7 @@ import {NonPlayer} from "../NonPlayer/NonPlayer";
export enum Textures {
Rock = 'rock',
Player = 'player',
Player = 'playerModel',
Map = 'map',
Tiles = 'tiles'
}
@ -39,7 +39,11 @@ export class GameScene extends Phaser.Scene implements GameSceneInterface{
'resources/characters/pipoya/Male 01-1.png',
{ frameWidth: 32, frameHeight: 32 }
);
}
//hook create scene
create(): void {
//anims cannot be in preload because it needs to wait to the sprit to be loaded
getPlayerAnimations().forEach(d => {
this.anims.create({
key: d.key,
@ -48,10 +52,7 @@ export class GameScene extends Phaser.Scene implements GameSceneInterface{
//repeat: d.repeat
});
});
}
//hook create scene
create(): void {
this.userInputManager = new UserInputManager(this);
//create entities
@ -68,8 +69,8 @@ export class GameScene extends Phaser.Scene implements GameSceneInterface{
//create map
let currentMap = this.add.tilemap(Textures.Map);
let terrain = currentMap.addTilesetImage(Textures.Tiles, "tiles");
let bottomLayer = currentMap.createStaticLayer("Calque 1", [terrain], 0, 0).setDepth(-1);
let topLayer = currentMap.createStaticLayer("Calque 2", [terrain], 0, 0);
let bottomLayer = currentMap.createStaticLayer("Calque 1", [terrain], 0, 0).setDepth(-2);
let topLayer = currentMap.createStaticLayer("Calque 2", [terrain], 0, 0).setDepth(-1);
this.physics.world.setBounds(0,0, currentMap.widthInPixels, currentMap.heightInPixels);
this.physics.add.collider(this.player, topLayer);
@ -105,6 +106,7 @@ export class GameScene extends Phaser.Scene implements GameSceneInterface{
this.player.move(eventList);
this.otherPlayers.getChildren().forEach((otherPlayer: NonPlayer) => {
//this.physics.accelerateToObject(otherPlayer, this.player); //this line make the models chase the player
otherPlayer.setVelocity(20, 5);
})
}

View file

@ -4,7 +4,7 @@ import {Textures} from "../Game/GameScene";
export class NonPlayer extends PlayableCaracter {
constructor(scene: Phaser.Scene, x: number, y: number) {
super(scene, x, y, Textures.Player, 26);
super(scene, x, y, Textures.Player, 1);
this.setSize(32, 32); //edit the hitbox to better match the caracter model
}
}

View file

@ -7,7 +7,7 @@ import {PlayableCaracter} from "../Entity/PlayableCaracter";
export class Player extends PlayableCaracter{
constructor(scene: Phaser.Scene, x: number, y: number) {
super(scene, x, y, Textures.Player, 26);
super(scene, x, y, Textures.Player, 1);
this.setImmovable(false); //the current player model should be push away by other players to prevent conflict
this.setSize(32, 32); //edit the hitbox to better match the caracter model
}
@ -19,27 +19,28 @@ export class Player extends PlayableCaracter{
if(activeEvents.get(UserInputEvent.MoveUp)){
this.setVelocity(0, -speed)
playAnimation(this, PlayerAnimationNames.WalkUp);
} else if(activeEvents.get(UserInputEvent.MoveLeft)){
this.setVelocity(-speed, 0)
} else if(activeEvents.get(UserInputEvent.MoveDown)){
playAnimation(this, PlayerAnimationNames.WalkDown);
this.setVelocity(0, speed)
} else if(activeEvents.get(UserInputEvent.MoveRight)){
this.setVelocity(speed, 0)
} else {
this.setVelocity(0, 0)
playAnimation(this, PlayerAnimationNames.None);
}
if (this.body.velocity.x > 0) { //moving right
this.play("right", true);
} else if (this.body.velocity.x < 0) { //moving left
this.anims.playReverse("left", true);
} else if (this.body.velocity.y < 0) { //moving up
this.play("up", true);
} else if (this.body.velocity.y > 0) { //moving down
this.play("down", true);
}
}
stop() {
this.setVelocity(0, 0)
}
/*private sharePosition(direction : string){
if(ConnexionInstance) {
ConnexionInstance.sharePosition((this.scene as GameSceneInterface).RoomId, this.x, this.y, direction);
}
}*/
}