Как нарисовать многоугольник с помощью Phaser 3? - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь нарисовать простую форму многоугольника, используя фазер 3. Проблема в том, что полигон не отображается.

var config = {
        type:Phaser.AUTO,
        width:800,
        height:600,
        scene: {
            preload: preload,
            create: create,
        }
    };

    var game = new Phaser.Game(config);

    var poly;
    var graphics;

    function preload() {}

    function create() {

        poly = new Phaser.Geom.Polygon();
        poly.setTo([ new Phaser.Geom.Point(200, 100), new Phaser.Geom.Point(350, 100), new Phaser.Geom.Point(375, 200), new Phaser.Geom.Point(150, 200) ]);


        graphics = this.add.graphics(0, 0);
        graphics.fillPoints(poly.points, true);
    }

Я получил ошибку: «Phaser.Polygon не является конструктором», но я видел этот код в учебнике о Phaser.

РЕДАКТИРОВАТЬ: я изменил код в соответствии с предложением PhotonStorm, теперь я не получаю ошибки, но полигон по-прежнему не появляется.

EDIT2: решается вызовом lineStyle и fillStyle для графического объекта.

graphics = this.add.graphics(0, 0);

graphics.lineStyle(5, 0xFF00FF, 1.0);
graphics.fillStyle(0xFFFFFF, 1.0);
graphics.fillPoints(poly.points, true);

1 Ответ

1 голос
/ 20 июня 2019

Это Phaser.Geom.Polygon.

Вот страница документации для него .

Базовый пример:

    var polygon = new Phaser.Geom.Polygon([
        400, 100,
        200, 278,
        340, 430,
        650, 80
    ]);
...