From b56c53b02542c2aecb04e777b3b15f14a474d289 Mon Sep 17 00:00:00 2001 From: Daniel Bulant Date: Thu, 8 Apr 2021 20:20:46 +0200 Subject: [PATCH] map switching --- src/game/gameScene.js | 12 ++++++++++++ src/game/index.js | 11 ++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/game/gameScene.js b/src/game/gameScene.js index 4576fb0..f49b800 100644 --- a/src/game/gameScene.js +++ b/src/game/gameScene.js @@ -32,6 +32,14 @@ export class GameScene extends Phaser.Scene { steps.set(map.steps); } + unload() { + this.grid.destroy(); + this.background.destroy(); + this.container.destroy(); + delete this.items; + delete this.winds; + } + preload() { this.load.setBaseURL(); this.load.image("level1", "/sprite/level1.webp"); @@ -49,6 +57,10 @@ export class GameScene extends Phaser.Scene { this.game.sound.context.resume(); } }); + this.createMap(); + } + + createMap() { console.log(this.map); this.container = this.add.container(); diff --git a/src/game/index.js b/src/game/index.js index 57441c8..08989ad 100644 --- a/src/game/index.js +++ b/src/game/index.js @@ -9,9 +9,12 @@ export function resize() { var htmlcanvas; /** @type {Game} */ var game; +/** @type {GameScene} */ +var gs; export function setCanvas(canvas) { htmlcanvas = canvas; var ctx = canvas.getContext("webgl2") || canvas.getContext("webgl"); + gs = new GameScene(map); game = new Game({ canvas: canvas, url: window.location.host, @@ -29,7 +32,7 @@ export function setCanvas(canvas) { }, title: "Heaventaker", version: "beta", - scene: [new GameScene(map)], + scene: [gs], backgroundColor: "#01021B" }); game.hideBanner = true; @@ -45,4 +48,10 @@ var mapname; export function setMap(newmap) { mapname = newmap; map = maps[mapname]; + if(gs) { + gs.unload(); + gs.map = map; + gs.createMap(); + } + console.log("Loaded map", mapname); } \ No newline at end of file