Подтвердить что ты не робот

Использование SVG файлов с libgdx

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

У меня есть изображения в формате SVG, например этот.

С SVG легко, вы просто меняете параметр заливки на другой цвет, но, как я понимаю, нет простой/стабильной обработки svg для использования с libgdx. Я все еще хочу использовать svg файлы для создания/хранения изображений для своего приложения.

  • Какой путь обработки вы бы рекомендовали?
  • Есть ли простой способ конвертировать пути/формы svg для объектов com.badlogic.gdx.math.bezier или полигона, а затем нарисовать их на экране/получить пользовательский ввод (коснитесь) внутри этих фигур?
  • Или мне нужно использовать разные объекты/путь?

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

4b9b3361

Ответ 1

То, как написано LibGDX, это дает вам более низкий способ сделать этот тип рендеринга, но не предлагает вне коробки способы визуализации SVG. Это действительно зависит от того, если вы ищете что-то с производительностью или просто хотите, чтобы он рисовал основные фигуры.

Чтобы просто визуализировать фигуры, вы могли бы использовать что-то вроде ShapeRenderer. Это дает вам очень близкий интерфейс к способу Java2D рисовать вещи. Возможно, чтобы быстро нарисовать некоторые основные вещи, это может быть удобно.

Если вы хотите сделать еще более надежную версию рендеринга, вам, вероятно, захочется изучить Mesh и работать с шейдеров для OpenGL ES. Вы можете найти примеры из них в тестах LibGDX, а также искать в Интернете примеры/учебники.

Если вы хотите превратить SVG в текстуру, вы захотите посмотреть Pixmap, а затем вы можете создать текстуру с это и сделать с помощью Spritebatch. Вам нужно будет написать пиксели, которые вы хотите окрасить, и такие, как Pixmap. Однако выполнение этого способа приведет к созданию неуправляемой текстуры (т.е. Вам придется перестроить ее, когда пользователь вернется в приложение после нажатия или отключения устройства).