C ++ Box2D,使用运动体模拟动态身体行为

时间:2013-12-11 12:35:08

标签: c++ box2d

我遇到了Box2D的问题。

我编写了一个类似魔兽争霸3地图的游戏。

http://www.youtube.com/watch?v=PKa1CNw6Q5A

你控制一个角色并且可以投掷可能与物体发生碰撞的火球。

对于Fireballs和Pillars之间的碰撞,例如我使用了两者的运动物体(通常它们不碰撞,但是有一个hack我让它工作)这很好用,因为我只需要跟踪碰撞,我不能使用动态因为我不希望它们在碰撞时被分开(OnTouch行为是用拼写脚本实现的)。

但是现在我需要支柱和角色之间的碰撞,所以基本上我希望它们像橡胶球一样,当角色以速度x抛向柱子时应该反弹。但是对于这个我需要一个动态体的行为,那么有一种简单的方法来模拟动态体的动态体的行为吗? (可能会覆盖一些东西?)

我不知道Box2D是如何工作的实习生,如果有人理解我的问题并且可以帮助我,我会很高兴。

2 个答案:

答案 0 :(得分:3)

听起来你需要使用动态物体来处理所有事情,但是在碰撞后他们可以更明确地控制它们的反应方式。

例如,所有类似物体的“抛射物”应该是传感器或使用组ID或掩码位来使它们不与其他物体发生物理碰撞。即使没有碰撞响应,也可以创建一个回调来检测碰撞并根据它确定要做什么。

黑客攻击物理学似乎可以破坏可靠运行的东西......自己做了这些,我很欣赏这种倾向。

查看this tutorial以及紧随其后的那个。他们真的有很好的信息(不,他们不是我的......当然)。

有关联系人过滤的更多信息,请查看此other article

答案 1 :(得分:0)

我建议您查看Chipmunk库!

这是一个物理引擎(2D),用C语言编写。我在我的项目中使用它,效果很好!