Javascript createFromObjects()在phaser中不工作?

Javascript createFromObjects()在phaser中不工作?,javascript,phaser-framework,Javascript,Phaser Framework,我想在phaser中做一个游戏。我已经创建了一个带有objectlayer的tilemap。但是,当我试图将对象从对象层添加到组检查器时,重叠不起作用。 这是我的密码: function preload() { game.load.spritesheet("bird","assets/flappybird.png",92,64,3); game.load.tilemap('map', 'assets/map.json', null, Phaser.Tilemap.TILED_JS

我想在phaser中做一个游戏。我已经创建了一个带有objectlayer的tilemap。但是,当我试图将对象从对象层添加到组检查器时,重叠不起作用。 这是我的密码:

function preload()
{
    game.load.spritesheet("bird","assets/flappybird.png",92,64,3);
    game.load.tilemap('map', 'assets/map.json', null, Phaser.Tilemap.TILED_JSON);
    game.load.image('tiles', 'assets/obstacle.png');
    game.load.image('checktiles', 'assets/empty.png');
    game.stage.backgroundColor = '#c9c9c9';

}
function create()
{
     game.physics.startSystem(Phaser.Physics.ARCADE);
     map = game.add.tilemap('map');
     //OBSTACLES
     map.addTilesetImage('obstacle', 'tiles');
     layer = map.createLayer('Tilelaag 1');
     layer.resizeWorld();
     map.setCollisionBetween(1, 12);
     //CHECKERS
     checkers = game.add.group();
     checkers.enableBody=true;
     map.createFromObjects('Object Checkers', 5, 'checktiles', 0, true, false, checkers);
    //PLAYER
    player=game.add.sprite(92,game.world.heigth-300,"bird");
    player.scale.setTo(0.5,0.5);
    game.physics.arcade.enable(player);
    player.body.gravity.y=300;
    player.animations.add("fly",[0,1,2],10,true);
    player.body.collideWorldBounds = true;
    player.body.velocity.x=150;
    //CURSORS
    cursors=game.input.keyboard.createCursorKeys();
    spacebar=game.input.keyboard.addKey(Phaser.Keyboard.SPACEBAR);
    //CAMERA
    game.camera.follow(player);
}
function update()
{
    var hit=game.physics.arcade.collide(layer,player);
    game.physics.arcade.overlap(player, checkers,Addpoint,null,this);
    player.animations.play("fly");
    if(spacebar.isDown)
    {
        player.body.velocity.y = -150;
    }
    if(hit)
    {
        game.state.restart();
    }
}
function Addpoint()
{
    console.log("Called");
}

我想在图层数据之后的JSON文件中,应该有如下内容:

...
{
         "draworder":"topdown",
         "height":0,
         "name":"Object Checkers",
         "objects":[
                {
                 //First object
                 "height":43.5,
                 "id":2,
                 "name":"",
                 "rotation":0,
                 "type":"",
                 "visible":true,
                 "width":43.5,
                 "x":158.25,
                 "y":178,
                 "gid":5
                }, 
                {
                 //Second object
                 "height":43.5,
                 "id":9,
                 "name":"",
                 "rotation":0,
                 "type":"",
                 "visible":true,
                 "width":43.5,
                 "x":117.5,
                 "y":257.75,
                 "gid":5
                }, 
                {
                 //Third object (if it exists), etc...
                 ...
当然,id、旋转、名称、宽度、长度和其他属性可能会有所不同,但GID不会。在数组的每个元素上都需要GID属性。在本例中,GID属性为5,您可以手动将其放置在每个对象中

验证后,它将执行以下操作:

var map, layer, checkers;

function create()
{
     game.physics.startSystem(Phaser.Physics.ARCADE);
     //Map
     map = game.add.tilemap('map');
     //I understand that here is the name of the tileset as specified in the map data.
     map.addTilesetImage('tiles');
     layer = map.createLayer('Tilelaag 1');
     layer.resizeWorld();
     map.setCollisionBetween(1, 12);
     //Checkers
     checkers = game.add.group();
     checkers.enableBody = true;
     /*
        First parameter: string of map objects layer.
        Second parameter: Gid.
        Third parameter: sprite string to use.
        Fourth parameter: value of the frame to initialize the object.
        Fifth parameter: default status of the sprite.
        Sixth parameter: autocull. The sprites that are autoculled are culled from the camera if out of its range..
        Seventh parameter: the group is specified
     */
     map.createFromObjects('Object Checkers', 5, 'checktiles', 0, true, false, checkers);
     console.log(checkers.length);
    //create player, controls, etc...
    ...
}
对象的位置可能会受到影响,您可以使用:

map.createFromObjects('Object Checkers', 5, 'checktiles', 0, true, false, checkers, Phaser.Sprite, false);
一个