Merge pull request #42 from gparant/refactor-sizing-character

Refactor sizing hitbox character
This commit is contained in:
grégoire parant 2020-04-13 17:04:33 +02:00 committed by GitHub
commit 1c833f6114
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 7 deletions

View File

@ -14,7 +14,8 @@ export class PlayableCaracter extends Phaser.Physics.Arcade.Sprite {
this.scene.physics.world.enableBody(this); this.scene.physics.world.enableBody(this);
this.setImmovable(true); this.setImmovable(true);
this.setCollideWorldBounds(true); this.setCollideWorldBounds(true);
this.setSize(32, 32); //edit the hitbox to better match the caracter model this.setSize(16, 16); //edit the hitbox to better match the caracter model
this.setOffset(8, 16);
} }
move(x: number, y: number){ move(x: number, y: number){

View File

@ -94,16 +94,16 @@ export class GameScene extends Phaser.Scene implements GameSceneInterface{
//add collision layer //add collision layer
this.Layers.forEach((Layer: Phaser.Tilemaps.StaticTilemapLayer) => { this.Layers.forEach((Layer: Phaser.Tilemaps.StaticTilemapLayer) => {
this.physics.add.collider(this.CurrentPlayer, Layer, (object1: any, object2: any) => { this.physics.add.collider(this.CurrentPlayer, Layer, (object1: any, object2: any) => {
this.CurrentPlayer.say("Collision with layer : "+ (object2 as Tile).layer.name) //this.CurrentPlayer.say("Collision with layer : "+ (object2 as Tile).layer.name)
}); });
Layer.setCollisionByProperty({collides: true}); Layer.setCollisionByProperty({collides: true});
//debug code //debug code
//debug code to see the collision hitbox of the object in the top layer //debug code to see the collision hitbox of the object in the top layer
Layer.renderDebug(this.add.graphics(), { /*Layer.renderDebug(this.add.graphics(), {
tileColor: null, //non-colliding tiles tileColor: null, //non-colliding tiles
collidingTileColor: new Phaser.Display.Color(243, 134, 48, 200), // Colliding tiles, collidingTileColor: new Phaser.Display.Color(243, 134, 48, 200), // Colliding tiles,
faceColor: new Phaser.Display.Color(40, 39, 37, 255) // Colliding face edges faceColor: new Phaser.Display.Color(40, 39, 37, 255) // Colliding face edges
}); });*/
}); });
} }
@ -115,7 +115,7 @@ export class GameScene extends Phaser.Scene implements GameSceneInterface{
createCollisionObject(){ createCollisionObject(){
this.Objects.forEach((Object : Phaser.Physics.Arcade.Sprite) => { this.Objects.forEach((Object : Phaser.Physics.Arcade.Sprite) => {
this.physics.add.collider(this.CurrentPlayer, Object, (object1: any, object2: any) => { this.physics.add.collider(this.CurrentPlayer, Object, (object1: any, object2: any) => {
this.CurrentPlayer.say("Collision with object : " + (object2 as Phaser.Physics.Arcade.Sprite).texture.key) //this.CurrentPlayer.say("Collision with object : " + (object2 as Phaser.Physics.Arcade.Sprite).texture.key)
}); });
}) })
} }

View File

@ -50,8 +50,6 @@ export class Player extends PlayableCaracter implements CurrentGamerInterface, G
//the current player model should be push away by other players to prevent conflict //the current player model should be push away by other players to prevent conflict
this.setImmovable(false); this.setImmovable(false);
//edit the hitbox to better match the caracter model
this.setSize(32, 32);
} }
initAnimation(): void { initAnimation(): void {