LibGDX中的矩形/圆三角碰撞

时间:2014-03-30 14:51:16

标签: java libgdx

有没有人对LibGDX中处理矩形和圆形三角形交叉的最佳方法有任何建议?我看到Intersector类有测试三角形和光线交叉点的方法,但我不知道如何直接将它应用于矩形或圆形。我还看到有一个isPointInTriangle方法,我可以使用它来循环遍历三角形和矩形的点?

http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/math/Intersector.html

也许我只是错过了LibGDX中一个简单的,已经存在的功能?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

三角形和矩形都被认为是多边形,因此使用libGDX Polygon类来描述三角形和矩形,然后使用Intersector类来交叉它们。

对于圈子,您可以:

  1. 用多边形近似它(比如说圈中的10个点),然后使用Intersector类。

  2. 为多边形碰撞检查器创建自己的自定义圆圈。

  3. 一种用于检查多边形和圆形碰撞的简单算法:

    if center of circle is inside the polygon =>>> they overlap.
    
    else if distance between circle center and any of the polygons vertices is less then circle radius =>>> they overlap.
    
    else =>>> they dont overlap.
    

    这是考虑到你不需要知道这些数字的重叠部分究竟是什么,你只想知道它们是否重叠。如果你需要知道重叠部分,那么用多边形近似你的圆是唯一的方法。