Uncaught TypeError: Невозможно установить свойство 'setCollisionByExclusion' для null - PullRequest
0 голосов
/ 01 ноября 2019

Так что я пытаюсь написать игру, не зная JS, используя Phaser 3

Код

var map;
var player;
var cursors;
var groundLayer, coinLayer;
var text;
var score = 0;

function preload() {
    this.load.tilemapTiledJSON('map', 'assets/test.json');
    this.load.spritesheet('tiles', 'assets/tiles.png', {frameWidth: 32, frameHeight: 32});
    this.load.atlas('player', 'assets/postac.png', 'assets/postac.json');
}

function create() {
    map = this.make.tilemap({key: 'map'});

    var groundTiles = map.addTilesetImage('tiles');
    groundLayer = map.createDynamicLayer('World', groundTiles, 0, 0);
    groundLayer.setCollisionByExclusion([1]);

    // set the boundaries of our game world
    this.physics.world.bounds.width = groundLayer.width;
    this.physics.world.bounds.height = groundLayer.height;

    // create the player sprite
    player = this.physics.add.sprite(200, 200, 'player');
    player.setBounce(0.2); // our player will bounce from items
    player.setCollideWorldBounds(true); // don't go out of the map

    this.physics.add.collider(groundLayer, player);

, в основном, он скопирован

, а такжеесли это могло бы помочь

Я получаю предупреждение "Недопустимый идентификатор слоя Tilemap: World"

Я пытался изменить -1 на 1, но это не помогло

...