我正在开发一个简单的游戏,其中我需要检测对象之间的碰撞,我已经知道如何检测 2 个 Sprite 之间的碰撞,但现在我需要检测 Sprite 与使用 绘制的线之间的碰撞ShapeRenderer
技术。假设我有一个像这样定义的 Sprite :
Texture texture = new Texture(myPath);
TextureRegion textureRegion = new TextureRegion(texture, w, h);
还有这样一行:
shapeRenderer.begin(ShapeType.Line);
shapeRenderer.line(x1, y1, x2, y2);
shapeRenderer.end();
有没有办法检测这两个物体何时发生碰撞?
最佳答案
在不知道如何检测 Sprite 碰撞的情况下,我建议一些可能有效的不同选项。
如果您使用 box2d 进行当前的碰撞检测,并且没有很多线条需要使用 shapeRenderer 进行渲染,您可以考虑创建一个主体/夹具来表示线条,使其成为传感器并像对待其他物体一样使用接触监听器。
或者更简单的方法可能是使用 libgdx 的 Intersector 类并在那里寻找可能对您有帮助的方法。例如,
public static boolean intersectLinePolygon(Vector2 p1, Vector2 p2, Polygon 多边形)
可能适合您,其中 p1 是您的 (x1,y1),p2 是您的 (x2, y2),多边形映射到您的纹理区域。
关于java - 检测 LibGdx 中 ShapeRenderer 线和 Sprite 之间的碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31234044/