只在我的2D引擎中集成Box2D碰撞检测?
问题描述:
我已经集成在Box2D的我的发动机,(调试抽奖等),并与世界我可以在一些2D正方形/长方形等只在我的2D引擎中集成Box2D碰撞检测?
我看到this后,用户基本上是不使用的世界扔碰撞检测,但是用户并不能说明有关他如何使用歧管(b2Manifold)任何事情,等
Another post,是在cocos2d的论坛上,(向下滚动到用户林在第三回复)
任何人都可以帮我一下吗?,基本上想添加碰撞检测而不需要使用b2World等等。
非常感谢!
答
有什么理由不能使用b2World吗?仅仅因为你使用它,并不意味着你必须使用物理模拟,除非你严格限制性能。
查看本例中仅在Cocos2d中使用Box2D进行碰撞。也许你可以申请类似于你的项目的东西:http://www.raywenderlich.com/606/how-to-use-box2d-for-just-collision-detection-with-cocos2d-iphone
答
这两篇文章中的代码似乎对我完成。您从两个多边形形状及其相应的变换开始,并从b2CollidePolygons返回一个接触流形。
b2Manifold只是两个形状边界相交的点的集合。在作者使用的发布代码中,如果歧管的点数大于零,则会有重叠。取决于形状的性质,当重叠时可以有不同数量的交点。
请注意,b2World的碰撞处理非常强大。除了简单的碰撞查询之外,它还有广泛的阶段剔除,光线投射,空间树,开始接触和最终接触事件,有效的内存管理来命名一些事物。对于大多数这些任务,API中有类,但我不能说我熟悉手动使用它们。值得一看。