【发布时间】:2020-01-08 18:33:39
【问题描述】:
我正在使用 libGDX 编写游戏,我需要检测多边形,但如果涉及复杂形状,Intersector.overlapConvexPolygons 方法根本不会返回应有的结果。
基于此,如果返回的结果和Rectangle检查一样,这个方法还有什么意义呢?
也许我做错了什么?
public Vector getOverlap(Entity a, Entity b){
Vector v=new Vector(); //my implementation of Vector2 class
Intersector.MinimumTranslationVector mv=new Intersector.MinimumTranslationVector();
if(Intersector.overlapConvexPolygons(a.getBounds(), b.getBounds(), mv)){
v.set(mv.normal.x, mv.normal.y).scl(mv.depth);
}
return v;
}
【问题讨论】:
-
几个问题:你的多边形是逆时针缠绕的凸多边形吗?白线是否应该完美包裹黑色“尖峰”?如果我在图像上看到的白线是用于调试您的多边形创建可能需要修复
-
@LuisFernandoFrontanilla 经过几个小时的测试后,很可能在创建多边形时出错了。
-
如果您可以共享创建多边形的代码部分,那就太好了