synchronize winds

This commit is contained in:
Daniel Bulant 2021-07-13 19:09:05 +02:00
parent 1cc3163ce4
commit db45a76618

View file

@ -228,6 +228,7 @@ export class GameScene extends Phaser.Scene {
} }
this.fpsText = this.add.bitmapText(0, this.container.height / 2, "gem", ""); this.fpsText = this.add.bitmapText(0, this.container.height / 2, "gem", "");
this.container.add(this.fpsText); this.container.add(this.fpsText);
this.propagateWinds(true);
this.propagateWinds(); this.propagateWinds();
if(window.location.hostname === "localhost") { if(window.location.hostname === "localhost") {
this.physics.config.debug = true; this.physics.config.debug = true;
@ -296,7 +297,7 @@ export class GameScene extends Phaser.Scene {
/** /**
* Propagates winds as needed. * Propagates winds as needed.
*/ */
propagateWinds() { propagateWinds(force) {
const buf = []; const buf = [];
for(let x in this.winds) { for(let x in this.winds) {
if(!this.sourceWinds[x]) continue; if(!this.sourceWinds[x]) continue;
@ -310,7 +311,6 @@ export class GameScene extends Phaser.Scene {
for(let x in this.items) { for(let x in this.items) {
this.winds[x] = new Array(this.map.size.x); this.winds[x] = new Array(this.map.size.x);
} }
console.log("Winds", this.winds.length);
for(let x in this.items) { for(let x in this.items) {
x = parseInt(x); x = parseInt(x);
for(let y in this.items[x]) { for(let y in this.items[x]) {
@ -339,7 +339,7 @@ export class GameScene extends Phaser.Scene {
x += move.x; x += move.x;
y += move.y; y += move.y;
if(this.items[x] && this.items[x][y] && this.items[x][y].type) break; if(!force && this.items[x] && this.items[x][y] && this.items[x][y].type) break;
if((this.winds[x] && this.winds[x][y]) || (this.sourceWinds[x] && this.sourceWinds[x][y])) continue; if((this.winds[x] && this.winds[x][y]) || (this.sourceWinds[x] && this.sourceWinds[x][y])) continue;
if(!this.items[x] || !this.items[x][y] || !this.items[x][y].type) { if(!this.items[x] || !this.items[x][y] || !this.items[x][y].type) {
@ -366,6 +366,7 @@ export class GameScene extends Phaser.Scene {
sprite.x = x * this.map.px; sprite.x = x * this.map.px;
sprite.y = y * this.map.px; sprite.y = y * this.map.px;
sprite.setRotation(item.direction * Math.PI / 2); sprite.setRotation(item.direction * Math.PI / 2);
sprite.setAlpha(1);
} }
item.sprite = sprite; item.sprite = sprite;
item.sprite.setDepth(0); item.sprite.setDepth(0);
@ -379,7 +380,7 @@ export class GameScene extends Phaser.Scene {
} }
} }
for(const unused of buf) { for(const unused of buf) {
unused.destroy(); unused.setAlpha(0);
} }
} }