Ошибка смещения при рисовании спрайтов с использованием pixijs - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть карта, на которой мне нужно нарисовать некоторое количество шестиугольников (примерно это будет от 50 * 50 до 150 * 150 элементов).

Когда я рисую их на холсте с помощью PIXI, я получаю действительно странное поведение: хотя элементов немного, карта отрисована правильно, все элементы на своих местах.Но когда размер холста изменился примерно на 5000 пикселей по ширине и высоте, все элементы перемещаются сверху над экраном.Более того, нажатие на элемент было обработано в том месте, где оно должно быть.

Я создал ручку, чтобы продемонстрировать это: https://codepen.io/cuddlemeister/pen/OdzMBw

Попробуйте изменить canvasWidth и canvasHeight в среде с
canvasWidth: 1500, canvasHeight: 1500 на canvasWidth: 4500, canvasHeight: 7500, и вы увидитерезультат.

Вот объект evnironment:

const environment = {
    size: 60,
    map: {
        rows: 30,
        cols: 30,
    },
  canvasWidth: 1500,
  canvasHeight: 1500
}

Вы увидите, что весь видимый контент был перемещен в верхнем направлении, и это зависит от высоты холста.

При щелчке включен регистратор, попробуйте щелкнуть элементы или область, где они должны быть - щелчок обрабатывается правильно в том месте, где должен быть элемент

1 Ответ

0 голосов
/ 10 февраля 2019

Это потому, что максимальный размер, который может обрабатывать контекст WebGL.Вы можете проверить это, зарегистрировав app.gl свойство.

Context size

При использовании не ускоренного холста через "forceCanvas" все в порядке.

Не думаю, что есть какой-либо способобойти это ограничение.

Зачем тебе такой большой холст?

...