From 241cbd720ab5e3062381b16d7d5724cef8406c20 Mon Sep 17 00:00:00 2001 From: kharhamel Date: Sat, 11 Apr 2020 18:17:36 +0200 Subject: [PATCH] added a rock --- front/dist/resources/objects/rockSprite.png | Bin 0 -> 3659 bytes front/src/Phaser/Game/GameScene.ts | 5 ++++ front/src/Phaser/Game/MapManager.ts | 16 ++++++++-- front/src/Phaser/Rock/Rock.ts | 28 ++++++++++++++++++ .../src/Phaser/UserInput/UserInputManager.ts | 3 ++ front/src/index.ts | 3 ++ 6 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 front/dist/resources/objects/rockSprite.png create mode 100644 front/src/Phaser/Rock/Rock.ts diff --git a/front/dist/resources/objects/rockSprite.png b/front/dist/resources/objects/rockSprite.png new file mode 100644 index 0000000000000000000000000000000000000000..40820abd0ee4564498e779462128d879c48dae1e GIT binary patch literal 3659 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 YM$joE+UD)Q$@RdIgSOVi2i$4@0|kzR_y7O^ literal 0 HcmV?d00001 diff --git a/front/src/Phaser/Game/GameScene.ts b/front/src/Phaser/Game/GameScene.ts index d3abfd15..faf19616 100644 --- a/front/src/Phaser/Game/GameScene.ts +++ b/front/src/Phaser/Game/GameScene.ts @@ -1,6 +1,10 @@ import {MapManagerInterface, MapManager} from "./MapManager"; import {GameManagerInterface} from "./GameManager"; +export enum Textures { + Rock = 'rock', +} + export interface GameSceneInterface extends Phaser.Scene { RoomId : string; sharedUserPosition(data : []): void; @@ -18,6 +22,7 @@ export class GameScene extends Phaser.Scene implements GameSceneInterface{ //hook preload scene preload(): void { + this.load.image(Textures.Rock, 'resources/objects/rockSprite.png'); this.load.image('tiles', 'maps/tiles.png'); this.load.tilemapTiledJSON('map', 'maps/map2.json'); this.load.spritesheet('player', diff --git a/front/src/Phaser/Game/MapManager.ts b/front/src/Phaser/Game/MapManager.ts index 3f8521d4..e6a82dc0 100644 --- a/front/src/Phaser/Game/MapManager.ts +++ b/front/src/Phaser/Game/MapManager.ts @@ -1,8 +1,9 @@ import {CameraManager, CameraManagerInterface} from "./CameraManager"; import {RESOLUTION} from "../../Enum/EnvironmentVariable"; import {Player} from "../Player/Player"; -import {GameScene, GameSceneInterface} from "./GameScene"; -import {UserInputManager} from "../UserInput/UserInputManager"; +import {Rock} from "../Rock/Rock"; +import {GameSceneInterface} from "./GameScene"; +import {UserInputEvent, UserInputManager} from "../UserInput/UserInputManager"; export interface MapManagerInterface { Map: Phaser.Tilemaps.Tilemap; @@ -21,6 +22,7 @@ export class MapManager implements MapManagerInterface{ startX = (window.innerWidth / 2) / RESOLUTION; startY = (window.innerHeight / 2) / RESOLUTION; userInputManager: UserInputManager; + private rock: Rock; constructor(scene: GameSceneInterface){ this.Scene = scene; @@ -44,11 +46,21 @@ export class MapManager implements MapManagerInterface{ this ); this.CurrentPlayer.initAnimation(); + this.rock = new Rock( + this.Scene, + 100, + 300, + ); + //this.rock.set() } update() : void { let activeEvents = this.userInputManager.getEventListForGameTick(); this.CurrentPlayer.move(activeEvents); + + /*if (activeEvents.get(UserInputEvent.Interact)) { + + }*/ } } \ No newline at end of file diff --git a/front/src/Phaser/Rock/Rock.ts b/front/src/Phaser/Rock/Rock.ts new file mode 100644 index 00000000..8892f10d --- /dev/null +++ b/front/src/Phaser/Rock/Rock.ts @@ -0,0 +1,28 @@ +import {GameSceneInterface, Textures} from "../Game/GameScene"; +import {CameraManagerInterface} from "../Game/CameraManager"; +import {MapManagerInterface} from "../Game/MapManager"; + +export class Rock extends Phaser.GameObjects.Image { + private isMoving: boolean; + + constructor( + Scene : GameSceneInterface, + x : number, + y : number, + ) { + super(Scene, x, y, Textures.Rock); + Scene.add.existing(this); + this.isMoving = false; + } + + push() { + console.log("the rock is pushed!") + } + + move() { + if(!this.isMoving) { + return; + } + } + +} \ No newline at end of file diff --git a/front/src/Phaser/UserInput/UserInputManager.ts b/front/src/Phaser/UserInput/UserInputManager.ts index c362bd95..e05eccb2 100644 --- a/front/src/Phaser/UserInput/UserInputManager.ts +++ b/front/src/Phaser/UserInput/UserInputManager.ts @@ -13,6 +13,7 @@ export enum UserInputEvent { MoveRight, MoveDown, SpeedUp, + Interact, } //we cannot the map structure so we have to create a replacment @@ -43,6 +44,8 @@ export class UserInputManager { {keyCode: Phaser.Input.Keyboard.KeyCodes.RIGHT, event: UserInputEvent.MoveRight, keyInstance: null}, {keyCode: Phaser.Input.Keyboard.KeyCodes.SHIFT, event: UserInputEvent.SpeedUp, keyInstance: null}, + + {keyCode: Phaser.Input.Keyboard.KeyCodes.E, event: UserInputEvent.Interact, keyInstance: null}, ]; constructor(Scene : GameSceneInterface) { diff --git a/front/src/index.ts b/front/src/index.ts index 650fd52c..f74c9fa5 100644 --- a/front/src/index.ts +++ b/front/src/index.ts @@ -12,6 +12,9 @@ const config: GameConfig = { parent: "game", scene: gameManager.GameScenes, zoom: RESOLUTION, + physics: { + default: 'impact' + }, }; let game = new Phaser.Game(config);