Использование нескольких слоев из игры Tiled into Phaser

Я создаю игру с движком Phaser, и в настоящее время я использую приложение Tiled для создания своей собственной карты тайлов.

Кажется, что настоящая проблема заключается в наличии нескольких слоев при создании этой карты тайлов. У меня есть 6 разных слоев:

  • "Фон"
  • "WallBlocks"
  • "Трава"
  • "SpikeAnimation"
  • "DiamondAnimation"
  • "SlimeAnimation"

Вот мой файл Game.js

SleepSim.Game = function (game) {
this.map;
this.Background;
this.WallBlocks;
this.Grass;
this.SpikeAnimation;
this.DiamondAnimation;
this.SlimeAnimation;
}
SleepSim.Game.prototype = {
create: function () {
    this.world.setBounds(0,0,5000,1000);

    this.map = this.add.tilemap('gameWorld');

    this.map.addTilesetImage('gameworld', 'tiles');

    this.Background = this.map.createLayer('Background');
    this.Background.resizeWorld();

    this.WallBlocks = this.map.createLayer('WallBlocks');
    this.Grass = this.map.createLayer('Grass');
    this.SpikeAnimation = this.map.createLayer('SpikeAnimation');
    this.DiamondAnimation = this.map.createLayer('DiamondAnimation');
    this.SlimeAnimation = this.map.createLayer('SlimeAnimation');
},
update: function() {
    if(this.input.keyboard.isDown(Phaser.Keyboard.DOWN)) {
        this.camera.y += 10;
    }
    else if (this.input.keyboard.isDown(Phaser.Keyboard.UP)){
        this.camera.y -= 10;
    }
    if (this.input.keyboard.isDown(Phaser.Keyboard.LEFT)){
        this.camera.x -= 10;
    }
    else if (this.input.keyboard.isDown(Phaser.Keyboard.RIGHT)){
        this.camera.x += 10;
    }
}
}

В данный момент я настроил камеру таким образом, чтобы просто пролистать карту, чтобы убедиться, что вещи могут загружаться.

Извиняюсь, если форматирование на этот вопрос прекращено, я впервые пишу! Любая помощь будет супер очень ценится.

1 ответ

Я столкнулся с подобной проблемой. Вам нужно только создать переменную для первого слоя, остальные не должны быть переменными.

this.map = this.add.tilemap('gameWorld');

this.map.addTilesetImage('gameworld', 'tiles');

this.Background = this.map.createLayer('Background');
this.Background.resizeWorld();

this.map.createLayer('WallBlocks');
this.map.createLayer('Grass');
this.map.createLayer('SpikeAnimation');
this.map.createLayer('DiamondAnimation');
this.map.createLayer('SlimeAnimation');
Другие вопросы по тегам