如何在纹理libGDX上创建多边形

时间:2017-02-13 10:53:55

标签: java libgdx polygon

我想通过从纹理中剪切透明区域来创建多边形。 我写了一个程序来检测2个对象之间的碰撞。 但是在碰撞之前检测到碰撞。 这就是它的外观:http://imgur.com/a/dFmXI

这是代码:https://hastebin.com/bebusadiku.java 我想切割纹理并根据切割纹理创建多边形,然后使用Intersector方法检测碰撞,但我不知道如何指定多边形的顶点。

我试图遵循这个但是没有解释如何检测顶点: https://gamedev.stackexchange.com/questions/114228/how-to-detect-collision-only-in-non-transparent-texture

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我使用this polygonal shape editor创建更复杂的形状来检查碰撞。我相信Box2D它可以在“盒子”之外工作,但Box2D占用了大量空间,如果你不使用实际物理,这是不必要的。但是,此工具会生成JSON格式化的多边形坐标,并且很难将其反序列化回Polygon个对象并与Intersector implementation进行冲突。所以在步骤中你:

  • 使用shape editor tool为您的图像创建形状。
  • 使用该工具将其导出到JSON。
  • 将该数据反序列化为LibGDX Polygon
  • 移动,缩放并将其正确附加到图像,使其同步。
  • 首先检查基本矩形与矩形的碰撞。
  • 如果存在基本碰撞,请使用Intersector进行更详细的碰撞检测。

该工具会导出大量冗余数据,如果您熟悉它导出的格式,您可以删除除多边形/顶点数据之外的所有数据。