Box2d非常接近的机构,正在被卡住"

时间:2014-09-17 15:53:00

标签: java libgdx box2d sprite

我正在使用平铺的tmx贴图,我创建了一个类,可以为某个图层中的每个贴片添加实体。到目前为止,这种情况一直很好,除非角色或敌人在屏幕上四处移动时,它的身体卡在两块瓷砖之间的边缘上。

这似乎“有时”发生在某些地方。跳跃让你失败,但它发生时很烦人,我试着增加位置迭代,但问题一直在重复发生。

看看我的游戏是什么样的:http://i.stack.imgur.com/f5Igm.png 我没有渲染瓷砖,因此更容易看到瓷砖的主体是什么样的

1 个答案:

答案 0 :(得分:0)

上层动态的身体"皮肤&#34>会发生什么?可以嵌入到它下面的形状中。如果上身然后穿过较低的形状并遇到其中一个形状的角落,那么物理引擎就会产生与行进方向相反的冲动。

轰!上身卡住了。

这是一个放大的图像,显​​示了向右移动的上方矩形:

enter image description here

从它们延伸的蓝点和线是Box2D流形计算代码确定需要应用脉冲的位置。请注意红色/棕色矩形右侧的蓝点和线条。那些是反对冲动。

正如评论中提到的三十二上校一样,解决方案是使用" ghost-vertices"较低形状的边缘形状机制(或者只使用有效计算边缘的链形状)。

作为背景,我有自己的fork of Box2D,我一直在开发,我只是为这个问题推出了另一种解决方案,不要求较低的形状为边缘(或链)形状。我也完成了a write-up of this alternative