Box2dWeb旋转关节落到地面下方

4
我一直在努力理解Box2dWeb,一旦你掌握了基础知识,它似乎很快就变得非常有用,这很棒。我可以模拟愤怒的小鸟效果,将物体抛向页面并进入结构中。我从Seth Ladd的精彩box2d教程中获得启发,并尝试适应它们,以便我可以构建一个关卡编辑器,在那里我可以开始创建迷你横向滚动游戏。但是……我已经跌倒在第一个障碍上……
我的Revolute Joint在调试中可见(两个物体之间的浅蓝色线)。然而,当它朝地面下降时,关节本身似乎继续下落(离开画布),而物体本身则会碰撞并停留在地面上。就好像它们实际上根本没有相互关联。
有人能解释一下我到底做错了什么吗?
你可以在以下网址找到简化版本:
www.g-mccann.co.uk/box2d
非常感谢您的反馈,我正在学习,所以请尽情批评。
谢谢, Gary
编辑:2012年5月23日
只是为了更新,我现在已经解决了这个问题,似乎没有任何一个物体附加了夹具。(感谢iforce2d)我已经提高了您的评论,但似乎不能像接受答案那样正常接受。

请提出更具体的问题。 - jazzytomato
嗨Thomas,谢谢你的回复。我无法更具体地说明。我不明白为什么关节似乎在调试中显示在正确的位置,但当物体碰到缺陷时却会掉落到地面下方。 - Gary
1
根据你的示例中,没有一个刚体表现得像它们被连接在一起,我猜测这个关节连接的是另一组没有夹具的刚体。 - iforce2d
3个回答

2

您可以使用CreateJoint函数来解决您的问题。

我已经研究了您的脚本,发现只需在init函数中添加这一行即可找到解决方案。

box.addRevoluteJoint("wheel3","chassis", {motorSpeed: -2, maxMotorTorque: 10});

我希望这能解决你的问题。


1

我看到你的接头是在没有任何固定装置的情况下连接着身体。


0

要创建旋转关节,您需要添加两个物体,一个是静态的,另一个是动态的。将动态物体通过旋转关节连接到静态物体上的一个点,并在启用enableMotor后通过应用motorSpeed和maxTorque使其旋转或移动。有关工作示例,请参见此游戏,该游戏使用了大量的旋转关节来制作。 http://pixsansar.com/jumping-and-puzzle-ball-level1


1
旋转连接不一定要是静态的,它们可以都是动态的。 - martyman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接