Refactor to include connexion
This commit is contained in:
parent
5d463d097a
commit
bac1e804ad
8 changed files with 88 additions and 24 deletions
|
@ -1,95 +0,0 @@
|
|||
import {RESOLUTION} from "../Enum/EnvironmentVariable";
|
||||
import {Player} from "./Player";
|
||||
import {MapManagerInterface} from "./MapManager";
|
||||
|
||||
export interface CameraManagerInterface {
|
||||
CurrentPlayer : Player;
|
||||
MapManager : MapManagerInterface;
|
||||
moveCamera() : void;
|
||||
}
|
||||
|
||||
export class CameraManager implements CameraManagerInterface{
|
||||
Scene : Phaser.Scene;
|
||||
Camera : Phaser.Cameras.Scene2D.Camera;
|
||||
CurrentPlayer : Player;
|
||||
MapManager : MapManagerInterface;
|
||||
|
||||
constructor(
|
||||
Scene: Phaser.Scene,
|
||||
Camera : Phaser.Cameras.Scene2D.Camera,
|
||||
MapManager: MapManagerInterface,
|
||||
CurrentPlayer: Player
|
||||
) {
|
||||
this.Scene = Scene;
|
||||
this.MapManager = MapManager;
|
||||
this.Camera = Camera;
|
||||
this.CurrentPlayer = CurrentPlayer;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param x
|
||||
* @param y
|
||||
* @param speedMultiplier
|
||||
*/
|
||||
private moveCameraPosition(x:number, y:number, speedMultiplier: number): void {
|
||||
this.Camera.scrollX += speedMultiplier * 2 * x;
|
||||
this.Camera.scrollY += speedMultiplier * 2 * y;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
moveCamera(): void {
|
||||
//center of camera
|
||||
let startX = ((window.innerWidth / 2) / RESOLUTION);
|
||||
let startY = ((window.innerHeight / 2) / RESOLUTION);
|
||||
|
||||
//if user client on shift, camera and player speed
|
||||
let speedMultiplier = this.MapManager.keyShift.isDown ? 5 : 1;
|
||||
|
||||
if (this.MapManager.keyZ.isDown || this.MapManager.keyUp.isDown) {
|
||||
if (!this.CanToMoveUp()) {
|
||||
this.Camera.scrollY = 0;
|
||||
}else if (this.CurrentPlayer.y < (this.MapManager.Map.widthInPixels - startY)) {
|
||||
this.moveCameraPosition(0, -1, speedMultiplier);
|
||||
}
|
||||
}
|
||||
if (this.MapManager.keyQ.isDown || this.MapManager.keyLeft.isDown) {
|
||||
if (!this.CanToMoveLeft()) {
|
||||
this.Camera.scrollX = 0;
|
||||
}else if (this.CurrentPlayer.x < (this.MapManager.Map.heightInPixels - startX)) {
|
||||
this.moveCameraPosition(-1, 0, speedMultiplier);
|
||||
}
|
||||
}
|
||||
if (this.MapManager.keyS.isDown || this.MapManager.keyDown.isDown) {
|
||||
if (!this.CanToMoveDown()) {
|
||||
this.Camera.scrollY = (this.MapManager.Map.heightInPixels - (window.innerHeight / RESOLUTION));
|
||||
} else if (this.CurrentPlayer.y > startY) {
|
||||
this.moveCameraPosition(0, 1, speedMultiplier);
|
||||
}
|
||||
}
|
||||
if (this.MapManager.keyD.isDown || this.MapManager.keyRight.isDown) {
|
||||
if (!this.CanToMoveRight()) {
|
||||
this.Camera.scrollX = (this.MapManager.Map.widthInPixels - (window.innerWidth / RESOLUTION));
|
||||
} else if (this.CurrentPlayer.x > startX) {
|
||||
this.moveCameraPosition(1, 0, speedMultiplier);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private CanToMoveUp(){
|
||||
return this.Camera.scrollY > 0;
|
||||
}
|
||||
|
||||
private CanToMoveLeft(){
|
||||
return this.Camera.scrollX > 0;
|
||||
}
|
||||
|
||||
private CanToMoveDown(){
|
||||
return this.MapManager.Map.heightInPixels > (this.Camera.scrollY + (window.innerHeight / RESOLUTION))
|
||||
}
|
||||
|
||||
private CanToMoveRight(){
|
||||
return this.MapManager.Map.widthInPixels > (this.Camera.scrollX + (window.innerWidth / RESOLUTION))
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue