无效的 Tilemap 图层 ID

Invalid Tilemap Layer ID

当我去添加一个在平铺中创建的平铺地图时,我在 Phaser 3 中做我的游戏,我遵循了几个教程,我做了并重写了代码几次,即使这样它总是给我同样的无效 ID 错误。

失败次数:

代码如下:

import './phaser'

const config = {
  type: Phaser.AUTO,
  parent: "phaser-example",
  width: 1824,
  height: 960,
  physics: {
      default: 'arcade'
  },
  scene: {
      preload: preload,
      create: create
  }
};

export const game = new Phaser.Game(config)

function preload()
{
  this.load.image('terrain', './complementos/tilemaps/terrainBasic.png')
  this.load.tilemapTiledJSON('map', './complementos/tilemaps/basicLand.json')
}

function create()
{
  const teste = [[0,1,2],[0,1,2],[0,1,2]]
  
  const map = this.make.tilemap(teste)

  map.addTilesetImage('terrainBasic','terrain', 32, 32)
  
  const layer = map.createLayer(0,'land', 0, 0)
}

我不知道它是否有很大变化,但我正在使用 react 和 phaser 3,但我的 react 代码只有样式。

问题是,您没有为 tilemap 函数提供正确的参数。您必须通过 Phaser.Tilemaps.MapData 检查文档,在此处 https://photonstorm.github.io/phaser3-docs/Phaser.Tilemaps.Tilemap.html 或者您可以检查 phaser.io 网站上的示例。

特别结帐,官方网站上的一些演示,它们展示了如何使用图块(地图)的许多不同方式(带有工作示例)https://phaser.io/examples/v3/category/tilemap

这是一个片段,展示了如何使用数组来制作图块:

var config = {
    type: Phaser.AUTO,
    width: 5*16,
    height: 3*16,
    zoom:2,
    scene: {
        preload: preload,
        create: create
    }
};

var game = new Phaser.Game(config);

function preload ()
{
    this.load.image('tiles', 'https://labs.phaser.io/assets/tilemaps/tiles/super-mario.png');
}

function create ()
{
    // Load a map from a 2D array of tile indices
    var level = [ [ 0, 0, 0, 0, 0],[ 0, 14, 13, 14, 0],[ 0, 0, 0, 0, 0]];

    var map = this.make.tilemap({ data: level, tileWidth: 16, tileHeight: 16 });
    var tiles = map.addTilesetImage('tiles');
    var layer = map.createLayer(0, tiles, 0, 0);
}
<script src="https://cdn.jsdelivr.net/npm/phaser@3.55.2/dist/phaser.js"></script>