Phaser Tilemap Generation - PullRequest
       10

Phaser Tilemap Generation

0 голосов
/ 08 января 2019

Я уже некоторое время работаю над сайд-проектом в 2D Phaser 2 * 1001.

До сих пор я построил генератор карт и загрузчик карт (плюс другие части, которые я считаю не относящимися к этому вопросу), но у меня возникают проблемы с присвоением Tiles определенных свойств, чтобы было ясно, я знаю, что могу перейти в редактор листов Tiled и установить свойства для тайлов Tileset, но я не могу этого сделать при генерации случайной карты с использованием различных клеточных автоматов, поскольку Phaser не поддерживает внешние наборы Tileset, их необходимо внедрить, если они должны поддерживать свойства.

Моя первоначальная идея заключалась в том, чтобы иметь какой-то JSON-файл, в котором я определяю каждый биом (ниже), а не воздействую на саму карту Tilemap для свойств. Я бы использовал слой данных сортировки поверх карты тайла, содержащий различные биты. информации, но я не могу придумать, как "синхронизировать" различные tileIDs (поскольку я не могу сделать ничего, кроме добавления tileSetImage к пустой карте тайлов) и их свойств.

    {
  "allBiomes" :
  [
    {
      "id" : 0,
      "name": "Forest",
      "tiles" : 
      {
        "terrain" : 
        {
          "id" : 0,
          "name" : "LightGrassTile",
          "properties" :
          [ 
            {"walkable" : true},
            {"flammable" : true}
          ]
        }
      },
      "tilesets" : [
        {
          "tileset_key" : "Forest",
          "tileset_image" : "src/data/tilesets/forest/forest.png",
          "tileset_json" : "src/data/tilesets/forest/forest.json",
          "tileset_data" : "src/data/tilesets/forest/forest_data.json"}
      ],
      "biomeInformation" :
      {
        "temperatureRange" : [0, 20],
        "humidityRange" : [0, 50],
        "fauna" : [
          {"type" : "GiantAnt", "spawnChance" : 0.9}
        ],
        "flora" : [
          {"type" : "Mushroom", "spawnChance" : 0.6}
        ]
      }
    }
  ]
}

У кого-нибудь есть опыт создания чего-то подобного? Или лучший способ сделать это, или я должен попробовать другой каркас?

Спасибо за ваше время.

...