如何使用简单纹理在libgdx中绘制自定义形状?

6
我想在我的游戏中像愤怒的小鸟一样绘制自定义静态图形: angry birds 但问题是纹理是正方形的。
我们如何告诉“SpriteBatch”使用一些顶点来绘制形状?有人有什么想法吗?
1个回答

4
根据文档

SpriteBatch用于绘制引用纹理(区域)的2D矩形。

因此,本质上,此方法不允许您指定除矩形以外的任何其他几何图形。但是,有一个绘制方法,允许您指定“矩形”的四个坐标,并将其转换为其他形状。您需要将几何图形分解为适合这些基元的较小部分。看起来这种方法不适用于几何图形的更改。
更好的做法是创建一个网格并直接绘制它。该网格不支持三角剖分,因此请使用ObjLoader.loadObj*方法以Alias Wavefront OBJ格式加载网格。指定几何形状不应该是一件麻烦的事情;文章链接到了一些示例文件。

谢谢您的好建议。但是有一个问题:我使用相机,并配置了我的spriteBatch以使用度量视口。而且网格不支持矩阵投影。因此,如果我使用mesh.render(..)进行绘制,它将不支持相机(随相机移动),并且其大小将不是度量。您对这个问题有什么想法吗? - Aliaaa
1
@Aliaaa 你的意思是,SpriteBatch 包含了投影和模型视图矩阵吗?看一下下一个例子,你需要自己应用这些矩阵。 - Stefan Hanke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接