+import {RESOLUTION} from "./Enum/EnvironmentVariable";
export class GameScene extends Phaser.Scene {
private player: Phaser.GameObjects.Sprite;
private keyDown: Phaser.Input.Keyboard.Key;
private keyShift: Phaser.Input.Keyboard.Key;
+ private Mappy : Phaser.Tilemaps.Tilemap;
+
constructor() {
super({
key: "GameScene"
}
create(): void {
- let mappy = this.add.tilemap("map");
- let terrain = mappy.addTilesetImage("tiles", "tiles");
+ this.Mappy = this.add.tilemap("map");
+ let terrain = this.Mappy.addTilesetImage("tiles", "tiles");
- let bottomLayer = mappy.createStaticLayer("Calque 1", [terrain], 0, 0);
- let topLayer = mappy.createStaticLayer("Calque 2", [terrain], 0, 0);
+ let bottomLayer = this.Mappy.createStaticLayer("Calque 1", [terrain], 0, 0);
+ let topLayer = this.Mappy.createStaticLayer("Calque 2", [terrain], 0, 0);
// Let's manage animations of the player
this.anims.create({
//player.setBounce(0.2);
//player.setCollideWorldBounds(true);
this.player = this.add.sprite(450, 450, 'player');
-
}
private angle: number = 0;
update(dt: number): void {
+ let xCameraPosition = this.cameras.main.scrollX;
+ let yCameraPosition = this.cameras.main.scrollY;
+
let speedMultiplier = this.keyShift.isDown ? 5 : 1;
-
-
+
if (this.keyUp.isDown) {
- this.moveCamera(0, -1, speedMultiplier);
+ if(yCameraPosition > 0) {
+ this.moveCamera(0, -1, speedMultiplier);
+ }else {
+ this.cameras.main.scrollY = 0;
+ }
}
if (this.keyLeft.isDown) {
- this.moveCamera(-1, 0, speedMultiplier);
+ if(xCameraPosition > 0) {
+ this.moveCamera(-1, 0, speedMultiplier);
+ }else{
+ this.cameras.main.scrollX = 0;
+ }
}
if (this.keyDown.isDown) {
- this.moveCamera(0, 1, speedMultiplier);
+ if(this.Mappy.heightInPixels > (yCameraPosition + (window.innerHeight / RESOLUTION))) {
+ this.moveCamera(0, 1, speedMultiplier);
+ }else{
+ this.cameras.main.scrollY = (this.Mappy.heightInPixels - (window.innerHeight / RESOLUTION));
+ }
}
if (this.keyRight.isDown) {
- this.moveCamera(1, 0, speedMultiplier);
+ if(this.Mappy.widthInPixels > (xCameraPosition + (window.innerWidth / RESOLUTION))) {
+ this.moveCamera(1, 0, speedMultiplier);
+ }else{
+ this.cameras.main.scrollX = (this.Mappy.widthInPixels - (window.innerWidth / RESOLUTION));
+ }
}
if (this.keyZ.isDown) {
import GameConfig = Phaser.Types.Core.GameConfig;
import {GameScene} from "./GameScene";
import {Connexion} from "./Connexion";
-
-const resolution = 2;
+import {RESOLUTION} from "./Enum/EnvironmentVariable";
const config: GameConfig = {
title: "Office game",
- width: window.innerWidth / resolution,
- height: window.innerHeight / resolution,
+ width: window.innerWidth / RESOLUTION,
+ height: window.innerHeight / RESOLUTION,
parent: "game",
scene: [GameScene],
- zoom: resolution,
+ zoom: RESOLUTION,
};
let game = new Phaser.Game(config);
window.addEventListener('resize', function (event) {
- game.scale.resize(window.innerWidth / resolution, window.innerHeight / resolution);
+ game.scale.resize(window.innerWidth / RESOLUTION, window.innerHeight / RESOLUTION);
});
const connexion = new Connexion("test@gmail.com");