Hi all,
I have a tilemap in my Phaser 3 + matter js game.
I make the tilemap with var mapObj = this.make.tilemap({'key': 'mainMap'});
I use this.matter.world.convertTilemapLayer
to make the tilemap layers collidable.
What I’m trying to do is remove the tilemap and load a different one in it’s place.
To do this I destroy the map with mapObj.destroy();
. Then I made a new tilemap with mapObj = this.make.tilemap({'key': 'mainMap'});
.
This all worked untill I noticed that the matter js bodies on the tilemap were bouncing around as if the floor was lava.
So I tried to destroy the matter js connection with this.matter.world.destroy();
. And fixed the floor is lava problem but then I noticed that the collisionstart
event wasn’t firing anymore.
I was setting the event with:
this.matter.world.on('collisionstart', function (evt, bodyA, bodyB) {
console.log(1);
});
And so I re-set the event after the tilemap was created but the event still wasn’t firing
I suspect it’s a problem with the way I’m removing the matterjs connection to the tilemap but I’m not sure of any other way to do it.
Summary: I’m using game.matter.world.destroy();
to remove my tilemap from matter js but then the event listeners don’t work.
Thanks in advance.