Как создавать изометрические сцены с помощью Phaser 2 - PullRequest
0 голосов
/ 28 сентября 2018

Мне нужно сделать большую (4032x1440px) изометрическую карту тайлов с помощью фазера.Я пытался использовать изометрический плагин, но он не работает с изометрическими картами.Я загружал слои как отдельные спрайты, но уровень оказался очень тяжелым и медленным, и когда я складываюсь с физикой, столкновения Аркады не соответствуют карте.

Я также пытался сделать сцену одной большойизображение с физикой P2, и это работает, но я не знаю, как проверить позиции, если я не использую плитки.

gameObject.physics.startSystem(Phaser.Physics.P2JS);

this.scenery = new Phaser.Group(gameObject, gameObject.world, null, false, true, Phaser.Physics.P2);
this.levelData = gameObject.cache.getPhysicsData('location1_physics');
this.scenery = new Phaser.Group(gameObject, gameObject.world, null, false, true, Phaser.Physics.P2);
this.levelData = gameObject.cache.getPhysicsData('location1_physics');
for (var j = 0; j < this.levelData.layers[1].objects.length; j++) {
    this.scenery.addAt(gameObject.add.sprite(this.levelData.layers[1].objects[j].x, this.levelData.layers[1].objects[j].y), j);
    gameObject.physics.p2.enable(this.scenery.children[j], true);
    this.scenery.children[j].body.clearShapes();
    this.scenery.children[j].body.fixedRotation = true;
    this.scenery.children[j].body.kinematic = true;
    thepolygon = this.levelData.layers[1].objects[j].polygon;
    //thepolygon.immovable = true;
    thepolygon.visible = false;
    polygonarray = [];
    for (var k = 0; k < thepolygon.length; k++) {
        polygonarray[k] = [thepolygon[k].x, thepolygon[k].y];
    }
    this.scenery.children[j].body.addPolygon({}, polygonarray);
}
console.log('physics is loaded');

mapImage = gameObject.add.sprite(0, 0, 'location1_sprite');

Есть ли способ сделать изометрическую карту с помощью Phaser (рабочие примеры или исходный код)?

...