Phaser 3 - закрепить фигуру в поле зрения камеры - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь нарисовать миникарту из случайно сгенерированной матрицы, которая представляет мой уровень.

Для этого я рисую черные или белые квадратики один за другим, чтобы визуально представить матрицу (я не знаю, является ли это лучшим способом сделать это с помощью Phaser, на самом деле, я новичок в этой среде) .

Карта рисуется правильно, но ее положение привязано к миру, а не к камере, поэтому, когда я двигаюсь, она больше не видна.

Вот код, который я использую для рисования карты:

generate() {
    let wallsGraphics = this._scene.add.graphics({fillStyle : {color : LabyrinthConfig.MAPS.MINI_MAP.WALLS_COLOR}});
    let pathGraphics  = this._scene.add.graphics({fillStyle : {color : LabyrinthConfig.MAPS.MINI_MAP.PATH_COLOR}});

    // Draw the map
    let y = 0;
    for (let line of this._matrix) {
        let x = 0;
        for (let cell of line) {

            let rect    = new Phaser.Geom.Rectangle();
            rect.width  = LabyrinthConfig.MAPS.MINI_MAP.CELL_WIDTH;
            rect.height = LabyrinthConfig.MAPS.MINI_MAP.CELL_HEIGHT;
            rect.x = LabyrinthConfig.MAPS.MINI_MAP.POSITION_X + x * LabyrinthConfig.MAPS.MINI_MAP.CELL_WIDTH;
            rect.y = LabyrinthConfig.MAPS.MINI_MAP.POSITION_Y + y * LabyrinthConfig.MAPS.MINI_MAP.CELL_HEIGHT;

            cell === 0 ? wallsGraphics.fillRectShape(rect) : pathGraphics.fillRectShape(rect);

            x++;
        }
        y++;
    }
}

Любая помощь о том, как прикрепить эту карту к виду камеры?

1 Ответ

0 голосов
/ 04 сентября 2018

Установите коэффициент прокрутки ваших графических объектов на 0.

wallsGraphics.setScrollFactor(0);
pathGraphics.setScrollFactor(0);
...