Android Box2D碰撞检测:如何测试特定边界?

问题描述:

我想用AndEngine和Box2D物理插件来制作一个简单的滑板游戏。我正在试图制作一个“磨砂”导轨,并且需要测试我的玩家的底部是否与磨盘的顶部碰撞;我知道常见的做法是将碰撞盒的大小调整为沿着精灵的每个边缘1个像素并测试碰撞,但我不知道如何调整我的任何精灵主体的碰撞盒。Android Box2D碰撞检测:如何测试特定边界?

我只是使用Andengines碰撞检测,但box2Ds碰撞检测和一般物理停止一些东西被检测为与AndEngines碰撞检测的碰撞,所以我一直在尝试为我的物理世界做一个新的“ContactListener”与'beginContact(联系人联系人)'方法,但区分相互冲突的事情是不那么直接,我不知道我在做什么...

此外,我想能够我的球员通过铁轨旁边(在它前面),但是我的球员碰到边缘并停下来。

在目前box2D看起来像是比它的价值更努力,我很想试着将它从我的代码中剥离出来,然后用AndEngines碰撞检测代替,并对我自己的简单物理做一个裂缝......

+1

此页可能有用http://www.iforce2d.net/b2dtut/collision-callbacks 您可能可以使用b2ContactFilter :: ShouldCollide函数来决定导轨何时应该碰撞。 – iforce2d

+0

@ iforce2d感谢指针我现在就看看它 – AndroidNoob

您可以将'Userdata'(Type:Object)附加到您创建的Body对象。我会做一些Userdata类,并扩展像SkateBoardUserdata和GrindRailUserdata。

+0

我完全忘了!我想我会用我需要的额外数据创建一个JSONObject(这样我就可以获得尽可能多的额外信息)并将其附加到主体。谢谢! – AndroidNoob