java - 检测 LibGdx 中 ShapeRenderer 线和 Sprite 之间的碰撞

标签 java android libgdx collision-detection

我正在开发一个简单的游戏,其中我需要检测对象之间的碰撞,我已经知道如何检测 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 碰撞的情况下,我建议一些可能有效的不同选项。

  1. 如果您使用 box2d 进行当前的碰撞检测,并且没有很多线条需要使用 shapeRenderer 进行渲染,您可以考虑创建一个主体/夹具来表示线条,使其成为传感器并像对待其他物体一样使用接触监听器。

  2. 或者更简单的方法可能是使用 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/

相关文章:

java - @RepositoryRestController 和 @Repository 注释有什么区别?

android - 需要帮助改进 OpenCV 2.4.0 中人脸检测的执行时间

java - 检查根/子元素中是否存在元素

java - HikariCP 连接池立即创建 100 个连接

java - 使用 Arrays.asList() 时如何在 List 中添加元素

java - 如何修复哈希表中的 ArrayIndexOutOfBoundsException?

java - 如何获取使用 FileOutputStream 保存的文件的 URI?

javascript - ios-deploy 安装失败

java - getResourceAsStream() 返回 null

java - 在 Android 设备上使用 LibGDX 切换屏幕很慢