无效的 Tilemap 图层 ID
Invalid Tilemap Layer ID
当我去添加一个在平铺中创建的平铺地图时,我在 Phaser 3 中做我的游戏,我遵循了几个教程,我做了并重写了代码几次,即使这样它总是给我同样的无效 ID 错误。
失败次数:
- 尝试手动制作瓦片地图;
- 尝试使用 JSON 个文件;
- 我尝试使用单层;
- 我尝试根据平铺图层使用名称;
- 我试过使用不同的名称;
代码如下:
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>
当我去添加一个在平铺中创建的平铺地图时,我在 Phaser 3 中做我的游戏,我遵循了几个教程,我做了并重写了代码几次,即使这样它总是给我同样的无效 ID 错误。
失败次数:
- 尝试手动制作瓦片地图;
- 尝试使用 JSON 个文件;
- 我尝试使用单层;
- 我尝试根据平铺图层使用名称;
- 我试过使用不同的名称;
代码如下:
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>