From 7146decb5ba3e9e594dee80d68af1321ed127bc9 Mon Sep 17 00:00:00 2001 From: kharhamel Date: Mon, 6 Apr 2020 16:52:18 +0200 Subject: [PATCH 1/2] added code to freely move the camera using the arrow keys or z,q,s,d --- front/src/GameScene.ts | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/front/src/GameScene.ts b/front/src/GameScene.ts index 9a432449..ac38b222 100644 --- a/front/src/GameScene.ts +++ b/front/src/GameScene.ts @@ -1,5 +1,13 @@ export class GameScene extends Phaser.Scene { + private keyZ: Phaser.Input.Keyboard.Key; + private keyQ: Phaser.Input.Keyboard.Key; + private keyS: Phaser.Input.Keyboard.Key; + private keyD: Phaser.Input.Keyboard.Key; + private keyRight: Phaser.Input.Keyboard.Key; + private keyLeft: Phaser.Input.Keyboard.Key; + private keyUp: Phaser.Input.Keyboard.Key; + private keyDown: Phaser.Input.Keyboard.Key; constructor() { super({ @@ -13,6 +21,20 @@ export class GameScene extends Phaser.Scene { } init(): void { + this.keyZ = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.Z); + this.keyQ = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.Q); + this.keyS = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.S); + this.keyD = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.D); + + this.keyUp = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.UP); + this.keyLeft = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.LEFT); + this.keyDown = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.DOWN); + this.keyRight = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.RIGHT); + } + + private moveCamera(x:number, y:number): void { + this.cameras.main.scrollX += 2 * x; + this.cameras.main.scrollY += 2 * y; } create(): void { @@ -27,9 +49,23 @@ export class GameScene extends Phaser.Scene { private angle: number = 0; update(dt: number): void { - this.cameras.main.scrollX = Math.floor(300 + 300 * Math.cos(this.angle)); + + if (this.keyZ.isDown || this.keyUp.isDown) { + this.moveCamera(0, -1); + } + if (this.keyQ.isDown || this.keyLeft.isDown) { + this.moveCamera(-1, 0); + } + if (this.keyS.isDown || this.keyDown.isDown) { + this.moveCamera(0, 1); + } + if (this.keyD.isDown || this.keyRight.isDown) { + this.moveCamera(1, 0); + } + + /*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; + this.angle = dt * 0.0001;*/ } } From d0c09ecd4fbd31893db65c14418334f75956be7a Mon Sep 17 00:00:00 2001 From: kharhamel Date: Mon, 6 Apr 2020 16:59:14 +0200 Subject: [PATCH 2/2] added a way do speed up the camera movement --- front/src/GameScene.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/front/src/GameScene.ts b/front/src/GameScene.ts index ac38b222..fb510627 100644 --- a/front/src/GameScene.ts +++ b/front/src/GameScene.ts @@ -8,6 +8,7 @@ export class GameScene extends Phaser.Scene { private keyLeft: Phaser.Input.Keyboard.Key; private keyUp: Phaser.Input.Keyboard.Key; private keyDown: Phaser.Input.Keyboard.Key; + private keyShift: Phaser.Input.Keyboard.Key; constructor() { super({ @@ -21,6 +22,8 @@ export class GameScene extends Phaser.Scene { } init(): void { + this.keyShift = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.SHIFT); + this.keyZ = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.Z); this.keyQ = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.Q); this.keyS = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.S); @@ -32,9 +35,9 @@ export class GameScene extends Phaser.Scene { this.keyRight = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.RIGHT); } - private moveCamera(x:number, y:number): void { - this.cameras.main.scrollX += 2 * x; - this.cameras.main.scrollY += 2 * y; + private moveCamera(x:number, y:number, speedMultiplier: number): void { + this.cameras.main.scrollX += speedMultiplier * 2 * x; + this.cameras.main.scrollY += speedMultiplier * 2 * y; } create(): void { @@ -49,18 +52,20 @@ export class GameScene extends Phaser.Scene { private angle: number = 0; update(dt: number): void { + let speedMultiplier = this.keyShift.isDown ? 5 : 1; + if (this.keyZ.isDown || this.keyUp.isDown) { - this.moveCamera(0, -1); + this.moveCamera(0, -1, speedMultiplier); } if (this.keyQ.isDown || this.keyLeft.isDown) { - this.moveCamera(-1, 0); + this.moveCamera(-1, 0, speedMultiplier); } if (this.keyS.isDown || this.keyDown.isDown) { - this.moveCamera(0, 1); + this.moveCamera(0, 1, speedMultiplier); } if (this.keyD.isDown || this.keyRight.isDown) { - this.moveCamera(1, 0); + this.moveCamera(1, 0, speedMultiplier); } /*this.cameras.main.scrollX = Math.floor(300 + 300 * Math.cos(this.angle));