问题标签 [revolute-joints]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
179 浏览

box2d-iphone - 是否可以将一个物体从两侧连接到不同的静态物体

上面的代码创建了一个静态体和一个动态体,然后用一个 revolutejoint 将它们连接起来。这是我得到的:

添加第二个静态体之前

然后我添加以下几行来添加另一个主体,这是一个静态圆圈,然后将圆圈和之前添加的栏连接到栏的另一端。

但这是我得到的:

添加第二个静态体后

添加圆圈后,我无法移动栏。它是固定的。但我希望它加入这个圈子。我试图将锚点更改为不同的位置,但没有帮助。我错过了什么?也许不可能将一个动态物体连接到多个静态物体上。

0 投票
1 回答
2311 浏览

box2d - 当施加超过一定的力时实现关节断裂

我有两个动态的身体和一个旋转关节连接在一起。两个主体还连接到另一端的静态主体。当施加超过一定量的力时,我需要两个动态主体之间的关节断裂,也就是说,当质量超过关节能够抵抗时。这是如何在 Box2d 中完成的?我猜这不是由 Box2d 自动处理的。这是我想要实现的图形概述。

在此处输入图像描述

0 投票
1 回答
1129 浏览

ios - box2d旋转接头电机调速没有效果

我有一个我认为是直截了当的 box2d 配置,由一个静态身体上的 box2d 手臂(上臂、前臂和手)组成,其中手臂通过旋转关节连接到身体。目的是将手臂向后拉,以便在手臂向前移动时(即腋下投掷)可以释放手中的物体。我启用了一个电机来帮助手臂进行腋下运动。

问题是我无法提出参数值来实现不会超过我在手臂上启用的限制的真实手臂速度。如果我将 maxMotorTorque 设置为一个较小的值(例如小于 3.0 的任何数字),则手臂会逆时针旋转并且不会在我设置的限制处停止。如果我将电机速度设置为每秒 5.0 到 15000.0 弧度范围内的任何值,则当 maxMotorTorque 设置为 4.0 时,手臂速度不会改变。如果我将 maxMotorTorque 减小到一个很小的值,那么手臂会飞来飞去,但它会再次超出限制。

下面是我用来初始化旋转关节的代码:

手臂的密度为0.5,手中物体的密度为1.0。降低这些密度将使手臂移动得更快,但它又一次突破了极限。

关于我做错了什么的任何想法?我怎样才能让手臂更快地移动而不会超出限制?

0 投票
2 回答
434 浏览

java - Box2d Bike 总是在旋转

我在 Box2d 中的 Bike 有问题。它是通过旋转关节完成的。

当我想用这辆自行车在游戏中爬山时,它总是会转圈然后摔倒。我测试了不同的物理设置,如果扭矩太高,它也会旋转,但我认为有任何解决方案,但我找不到任何对我有帮助的东西。

有没有一种解决方案可以立即启动我的自行车,而不是等到“马达”全速运转?例如在我的游戏中的山坡上。

请帮我 :)

0 投票
3 回答
487 浏览

physics - 缩放时关节断裂

我最近一直在排练 Sprite Kit,遇到了一个非常奇怪的问题。缩放父节点时,通过 SKPhysicsJointPin 连接在一起的主体逐渐分开,然后关节断开。让我给你看图片。

这是正常状态: 这是正常状态

这是放大后的样子: 放大

这是缩小的时候: 缩小

如果你问我如何连接身体:我将棕色棒连接到蓝色节点中心的蓝色节点。任何想法我的问题是什么?

编辑:我最近发现当连接体不是动态时,关节不会断裂,并且一切都按预期工作。因此,例如,如果我使用 [SKPhysicsBody bodyWithEdgleLoopF​​romRect] 而不是 [SKPhysicsBody bodyWithRectangleOfSize] 为精灵创建物理体,则没有问题。但我需要身体是动态的。

这是我用来将物理连接到节点的代码。当然,这一切都是动态完成的。为了简洁起见,我只是硬编码。

在上面的代码中,beam1 和beam2 是SKSpriteNode 的子类的实例。默认情况下,锚点是 (0,0.5),我添加了一个名为 endPoint 的属性,它用作精灵上最右边的边缘点。

0 投票
2 回答
1028 浏览

libgdx - libgdx+box2d 关节在重力作用下无法正常工作

我正在尝试通过连接静态和动态主体来使用 box2d/libgdx 创建一个钟摆。我尝试过各种类型的关节,例如距离关节、绳索关节和旋转关节,但在重力作用下,动态体在最初受到关节约束后总是最终会向下逃逸。只有在零重力下,关节才能正常工作。我知道我一定在做一些非常愚蠢的事情。

PS。我还必须实现一个联系人监听器。我还没有弄清楚如何做到这一点。设置碰撞监听器会有帮助吗?

0 投票
1 回答
226 浏览

box2d - Sprite Kit 中的 Box2D Joint.GetReactionForce 等效项

在使用纯的、展开的 Box2D 和 Cocos2D 时,我曾经能够通过一个名为 GetReactionForce 的漂亮函数来获得关节上的反作用力。我最近开始尝试 Sprite Kit 物理,但我似乎没有找到类似的东西。据我所知,没有现成的。有没有办法可以在 Sprite Kit 中以某种方式实现这一点?物理引擎仍然是 Box2D,但并非所有功能都可用。我认为可以使用形成关节的物体的质量、密度、速度等属性来完成。但我不知道怎么做。

0 投票
1 回答
286 浏览

animation - DirectX 9 围绕“关节”旋转

我无法弄清楚如何生成矩阵。

希望这张图片能解释它,但基本上我有一个初始位置,我正在尝试将主关节旋转 90 度,然后将最后一个关节旋转 90 度。然后我随后应用翻译以获得最终矩阵(参见代码)。这适用于一组点,这些点相对于它的关节。

最后一次旋转似乎不起作用,如果我不输入该行就可以了: matrixPositions[2].appliedRotationMatrix *= (matrixRotX * matrixRotY * matrixRotZ); (腿笔直向下)。我一定遗漏了一些明显的东西吗?您不能以这种方式进行矩阵乘法以进行旋转吗?

在此处输入图像描述

0 投票
1 回答
1730 浏览

android - LibGDX Box2D 绳索像疯了一样伸展

当我使用绳索时,我正在开发一个游戏,这是我在 Box2d 中使用圆圈和关节创建的。当我用低力拖动绳索时,绳索按预期工作,而在其他情况下(当力更大时)它就像疯了一样伸展,我不知道如何修复它并创造更稳定的绳索。我尝试了不同类型的关节(RopeJoint、RevoluteJoint、DistanceJoint 等),但没用。这是我的代码:

}

截图:

普通的:

在此处输入图像描述

拉伸:

在此处输入图像描述

如果您知道如何解决此问题,请帮助我。

谢谢,查理!

0 投票
1 回答
634 浏览

java - box2d中的旋转关节

我一直在尝试按照这里的教程来构建一个旋转接头;本质上,一只手臂。我需要将手臂(一个矩形)固定到正方形上的一个点并围绕它旋转。当施加力时,我希望这两个形状表现得像一个,固定在一起,而手臂像布娃娃一样绕着盒子飞。

不幸的是,这根本不起作用。手臂起初是连接在一起的,然后当我施加力时,两个形状分开并且以我无法解释的奇怪方式表现。它几乎就好像锚处于一些不稳定的位置。

我正在使用 jbox2d 和本教程中的许多代码。

(我已经将初始锚点设置为中心只是为了看看它是否会起作用)(有一些奇怪的转换,因为我使用的是 openGl)

这是要点: