【问题标题】:Detect collision between ShapeRenderer line and sprite in LibGdx在 LibGdx 中检测 ShapeRenderer 线和精灵之间的碰撞
【发布时间】:2015-07-05 19:12:43
【问题描述】:

我正在开发一个简单的游戏,我需要在其中检测对象之间的碰撞,我已经知道如何检测两个精灵之间的碰撞,但是现在我需要检测一个精灵之间的碰撞以及使用ShapeRenderer 绘制的直线技术。假设我有一个这样定义的精灵:

Texture texture = new Texture(myPath);
TextureRegion textureRegion = new TextureRegion(texture, w, h);

还有这样一行:

shapeRenderer.begin(ShapeType.Line);
shapeRenderer.line(x1, y1, x2, y2);
shapeRenderer.end();

有没有办法检测这两个两个物体何时发生碰撞?

【问题讨论】:

    标签: java android libgdx collision-detection


    【解决方案1】:

    在不知道您是如何检测精灵碰撞的情况下,我会建议几个可能有效的不同选项。

      1234563像对其他主体一样使用联系侦听器。
    1. 或者更简单的方法可能是使用 libgdx 的 Intersector 类并在那里寻找可能对您有所帮助的方法。例如,

      public static boolean intersectLinePolygon(Vector2 p1, Vector2 p2, Polygon polygon)

    可能对您有用,其中 p1 是您的 (x1,y1),p2 是您的 (x2,y2),多边形映射到您的纹理区域。

    【讨论】:

    • 我绝对支持上面的答案。由于 ShapeRenderer 只是一个视觉对象,就像 SpriteBatch 一样,您肯定必须以某种方式在背景中支持您的碰撞对象。然后你根本不需要渲染一条线。我想还有一种相交方法可以同时相交两个多边形!
    猜你喜欢
    • 2017-08-07
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    相关资源
    最近更新 更多