首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >软体碰撞与Box2d (libGDX)

软体碰撞与Box2d (libGDX)
EN

Game Development用户
提问于 2015-09-24 03:47:55
回答 1查看 1.4K关注 0票数 3

我创建了几个类,在libGDX中使用Box2D (特别是类似于这些链接的长方形 )创建软体对象。

物体由多个圆形Box2D体(下称变形点)构成,通过距离连接连接在一起,使物体在变形点移动时“变形”。当物体与其他标准的Box2D刚体(如盒多边形)碰撞时,碰撞工作得差不多很好:

当两个柔软的物体碰撞时,问题就开始了。正如您可能从它们的构造方式中猜测的那样,由于Box2D处理碰撞的变形点很小,并且间隔很小,所以它们很容易就不会在两个软体应该碰撞的时候发生碰撞。如果这两个物体被放置在下面的图像中的左边,圆圈穿过正方形,而不是像它应该的那样从它的顶部反弹:

我试着解决这个问题(下面所示的方法),方法是对身体进行更多的细化,这样变形点就更靠近了(左),这看起来太耗费资源了,而且影响也不大。然后,我试着扩大变形点的大小以填补空白(中间),这对于碰撞非常有效,但是正如你所看到的,因为纹理看起来没有碰撞,所以将纹理映射到对象会造成问题。在此之后,我试图用旋转关节连接变形点之间的多边形物体来绑定物体的外部,这样可以更好地配合纹理,防止物体彼此通过,但它阻止了物体的适当变形。

我想不出更多的方法来解决这个问题,但是我对Box2D和libGDX非常陌生,也许我忽略了一个更简单的解决方案。我会给任何想法一个机会。

EN

回答 1

Game Development用户

回答已采纳

发布于 2015-09-24 06:56:43

如果中间的纹理在物理上起作用,唯一的问题是将纹理映射到变形点(由于变形点不考虑软体的外部边缘),难道不可能将纹理映射到与变形点相抵的点吗?

尝试锁定变形点的旋转,您可以将fixedRotation设置为BodyDefinition上的true,然后将每个变形点与从变形点中心到纹理映射点的偏移量Vector2相关联。除非您已经在使用它,否则可以使用setUserData将偏移量矢量存储在变形点上。

票数 0
EN
页面原文内容由Game Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://gamedev.stackexchange.com/questions/108758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档