diff options
| author | Mike Vink <mike1994vink@gmail.com> | 2021-07-15 17:22:17 +0200 |
|---|---|---|
| committer | Mike Vink <mike1994vink@gmail.com> | 2021-07-15 17:22:17 +0200 |
| commit | fe928e9c0a76d52269b0593b3ade31c6ccd9b8f9 (patch) | |
| tree | 38306ab846ab75638f2e07f12dbb1d460723b825 | |
| parent | f026e6bafa7fc5659486c15c32d57acc2adeaad2 (diff) | |
feat(inverting): player sprite relation
| -rw-r--r-- | client/src/GameState.ts | 8 | ||||
| -rw-r--r-- | client/src/client.ts | 2 | ||||
| -rw-r--r-- | client/src/game.ts | 5 | ||||
| -rw-r--r-- | client/src/sprite.ts | 23 |
4 files changed, 35 insertions, 3 deletions
diff --git a/client/src/GameState.ts b/client/src/GameState.ts index 198c6e8..29284d5 100644 --- a/client/src/GameState.ts +++ b/client/src/GameState.ts @@ -25,8 +25,14 @@ export default class GameState { if (this.currentPlayer === undefined) { console.log("--> getting current player object"); console.log(receivedState.currentPlayer!); - this.currentPlayer = new Player(receivedState.currentPlayer!); + this.currentPlayer = receivedState.currentPlayer!; } + if (this.remotePlayers === undefined) { + this.remotePlayers = receivedState.remotePlayers; + } else { + + } + } withoutSprite() { diff --git a/client/src/client.ts b/client/src/client.ts index ecd15fc..565abe5 100644 --- a/client/src/client.ts +++ b/client/src/client.ts @@ -27,7 +27,7 @@ export default class Client console.log("-> client is handling incoming event:"); console.log(event); switch (event.type) { - case 'updatePos': + case 'serverSidePosUpdate': GameState.getInstance().posUpdate(event.gameState!); break; } diff --git a/client/src/game.ts b/client/src/game.ts index e302c70..3ff639b 100644 --- a/client/src/game.ts +++ b/client/src/game.ts @@ -153,7 +153,10 @@ export default class AkkamonStartScene extends Phaser.Scene } - // this.drawRemotePlayers(); + this.renderRemotePlayers(GameState.getInstance().remotePlayers!); + } + + renderRemotePlayers(renderRemotePlayers) { } moveSprite(player: Sprite, input: Input, speed: number, prevVelocity: {x: number, y:number}) { diff --git a/client/src/sprite.ts b/client/src/sprite.ts new file mode 100644 index 0000000..fd14a7b --- /dev/null +++ b/client/src/sprite.ts @@ -0,0 +1,23 @@ +import Phaser from 'phaser'; +import type Player from './player'; + +type PlayerSpriteConfig = { + scene: Phaser.Scene, + x: number, + y: number, + texture: Phaser.Textures.Texture | string, + player: Player +} + +export default class PlayerSprite extends Phaser.Physics.Arcade.Sprite implements Phaser.Types.Physics.Arcade.SpriteWithDynamicBody { + + body: Phaser.Physics.Arcade.Body; + player: Player + + constructor(config: PlayerSpriteConfig) { + super(config.scene, config.x, config.y, config.texture); + + this.body = new Phaser.Physics.Arcade.Body(config.scene.physics.world, this); + this.player = config.player; + } +} |
