将SVG文件与libgdx一起使用

时间:2013-03-05 10:13:53

标签: android graphics svg libgdx

我正计划创建平板电脑应用。我会要求一些指导。

我有像this one这样的SVG格式的图片。

使用SVG很容易,您只需将填充参数更改为不同的颜色,但据我所知,没有简单/稳定的svg处理与libgdx一起使用。我仍然想使用svg文件为我的应用程序创建/存储图像。

  • 您会推荐哪种处理路径?
  • 是否有一种简单的方法可以转换com.badlogic.gdx.math.bezier或多边形对象的svg路径/形状,然后在屏幕上绘制它们/获取此形状内的用户输入(点按)?
  • 或者我应该使用不同的对象/路径?

形状可以组合在一起,例如我希望房子里有两个窗口可以一次改变颜色。

1 个答案:

答案 0 :(得分:9)

LibGDX的编写方式是它为您提供了一种较低级别的方式来进行此类渲染,但不提供现成的渲染SVG的方法。这实际上取决于你是否正在寻找具有性能的东西,或者只是想让它绘制基本的形状。

要简单地渲染形状,您可以使用ShapeRenderer之类的东西。这为您提供了一个非常接近Java2D绘制方式的接口。也许快速绘制一些基本的东西,这可能很方便。

如果您想要做一些更强大的渲染版本,您可能希望使用Mesh并使用着色器处理OpenGL ES。您可以在LibGDX tests中找到这些示例以及在线搜索示例/教程。

如果要将SVG转换为纹理,您需要查看Pixmap,然后可以使用它创建纹理并使用Spritebatch进行渲染。您需要使用Pixmap编写想要着色的像素。但是,这样做会生成一个非托管纹理(即,当用户在按下或将设备置于休眠状态后返回应用程序时,您将不得不重建它。)