【问题标题】:Trying to load a TileMap causes TypeError尝试加载 TileMap 会导致 TypeError
【发布时间】:2016-12-11 00:37:53
【问题描述】:

我一直在尝试将一个瓦片地图加载到我从 Tiled 导出为 JSON 的 Phaser 中,但是当我添加它时它一直导致以下错误:

我尝试复制 Phaser 示例并更改字符串以匹配我的文件,以查看是否是我做错了 - 仍然没有工作。

代码:

window.onload = function() {
var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phasergame', {preload: preload, create: create, update: update, render: render });
var map;
var layer;

function preload() {

    game.load.tilemap('map', 'assets/tilemap/maze.json', null, Phaser.Tilemap.TILED_JSON);
    game.load.image('tiles', 'assets/tilemap/tiles.png');

}

function create() {
    map = game.add.tilemap('map');
    map.addTilesetImage('tiles',tiles);
    layer = map.createLayer('Walls');
    layer.resizeWorld();
}

function update() {}

function render() {}
};
body {
  background: black;
  margin: 0;
  padding: 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/phaser/2.6.2/phaser.js"></script>

我来自 Tiled 的 maze.json:https://gist.github.com/spideynn/efe8e787031ffae89ddb354db129fb53

我的tiles.png:http://i.imgur.com/8cw9DcC.png

【问题讨论】:

    标签: javascript phaser-framework


    【解决方案1】:

    您的瓦片集的名称是否与您在 Tiled 中创建瓦片地图时使用的名称相同?如果在 Tiled 中,tileset 的名称为 tiles.png,那么您必须确保在移相器中加载的 tileset 也具有相同的名称。

    【讨论】:

    • Tiled中的tileset和图片同名
    • @Spideynn 你确定你有相同的名字吗?在您的 [JSON] (gist.github.com/spideynn/…) 文件中,它说瓦片集的名称是 * tiles.png * 而您正在加载的瓦片集的名称是 * tilemap.png*
    • 我更新了我在原始帖子中使用的代码 - 我很确定我现在使用的是相同的名称
    • 试试这个:
    • 试试这个:map.addTilesetImage('tiles', 'tiles');代替:map.addTilesetImage('tiles');
    猜你喜欢
    • 1970-01-01
    • 2021-05-02
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 2018-09-15
    • 2017-10-26
    • 2019-07-07
    相关资源
    最近更新 更多