问题标签 [box2d-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 回答
931 浏览

java - Java Libgdx - Box2d setTransform 多个带有关节的物体

我有一组身体,附有一些关节(轮关节,棱柱关节,旋转关节)

我正在尝试使用 setTransform 方法将该组主体移动到某个位置

我决定只将一个身体移动到该位置,其他身体应该因为关节而跟随。

我得到了一个奇怪的结果,身体开始滚动,移动到无处,一个真正奇怪的结果,这里有一些图像来解释:

在此处输入图像描述

如何使用 setTransform 将多个连接有关节的物体移动到一个位置?

注意:从 A 点到 B 点,物体没有障碍物(移动)

0 投票
1 回答
111 浏览

actionscript-3 - 尝试在 Citrus Engine 中使用 Box2D 生成挥剑攻击

在过去的几天里,我一直把头撞在墙上,试图弄清楚如何正确扩展 CitrusEngine 的 Box2DPhysicsObjects 以生成我的自定义对象。我的目标是产生这种行为: 期望行为的例子

这是为了模拟我的英雄在挥动剑攻击时向使用输入确定的方向冲刺。剑“休眠”直到攻击状态被激活。

我想我对如何正确使用 Box2D(尤其是关节)有一个根本的误解。如果有人能指出我正确的方向,我将永远感激不尽。我无法真正提供我当前的代码,因为它已经无法正常工作了。

0 投票
1 回答
261 浏览

c++ - Box2D 实体之间的分层连接

我在 box2d 中有一个任意深度的树形结构。当父体与任何物体发生碰撞时,它应该移动它的子体。另一方面,如果孩子因碰撞而移动,则不应触摸父母。一个身体可以同时是一个身体的父母和另一个身体的孩子。

有没有办法在 Box2D 中实现这一点?似乎没有一个关节能够代表这一点,因为它们都是对称的。

0 投票
1 回答
41 浏览

box2d - Box2D:我如何让一个身体被动地连接到另一个身体?

我正在尝试使用 Box2D 中的关节让一个身体被动地连接到另一个身体。例如:

[乙][甲]

目标:当 A 连接到 B 时,B 始终在 A 的左侧。其他物体仍应与 B 和 A 发生碰撞,但我不希望 B 对 A 产生任何物理影响。 B 不应“压低”一个。

问题:B总是“压低”A。

我试过多个关节。我尝试将 B 的质量设置为零。我尝试将 B 设置为忽略重力。

我该如何进行这项工作?

0 投票
0 回答
121 浏览

javascript - 带 bo​​x2d 腹板的旋转接头,车轮不绕自身轴转动

我正在尝试在 node.js 服务器中使用旋转关节,但是我的轮子不是围绕自己的轴而是围绕身体转动。

这是我的代码:

然后当我按下按钮时,我像这样设置电机速度:

车轮开始围绕身体中心旋转,但我想围绕它自己的中心旋转。

这是 body 和 wheel 的设置:

我究竟做错了什么 ?或者也许我应该使用不同的 box2d 实现。我正在使用来自:https ://www.npmjs.com/package/box2dweb 的 box2d

0 投票
1 回答
145 浏览

javascript - 让dampingRatio与Box2D和DistanceJoint一起使用

我在几个项目上尝试过在 Box2D for JavaScript 中获得一个距离关节以停止摆动,但均未成功。无论我为物体的密度以及远处关节定义的阻尼比和频率赫兹设置什么值 - 结果是你拿起一端,另一端无休止地摆动。我希望摆动变小,然后在摆动几次后停止。

接头起作用 - 但阻尼不起作用。任何帮助,将不胜感激。这是我正在使用的 Box2D 的链接:https ://github.com/joelgwebber/bench2d/tree/master/js/Box2dWeb-2.1a.3

0 投票
0 回答
175 浏览

java - Box2D WeldJoint 无法正常工作

在我的问题面前,我的英语很冒险......

在我的 libgdx 应用程序中,我实现了 Box2D。所以我创建了一个 World 并添加了 2 个 Body。第一个 Body 是一个 PolygonShape 设置为盒子,它是静态的并且在我的世界中间旋转。第二个身体只是一个圆圈,它是动态的,落在第一个身体的顶部。当下降的圆圈与盒子碰撞时,我创建了一个 WeldJoint 并期望,圆圈现在也随着盒子旋转......但大约 20 度后,圆圈停止在盒子内旋转并且不要移动再...

这是一张图片: 像胶水一样正常工作

另一个: 停止他在盒子周围的旋转

我的代码:

在我的渲染循环中:

忽略不好的代码,它只是为了测试......

谢谢 :)

0 投票
1 回答
139 浏览

android - 以恒定的速度移动一个身体,模仿我手指在屏幕上的移动

我需要帮助解决以下问题,因为我已经投入了很多天而没有找到可接受的解决方案。

我正在做一个 Android 游戏(使用 libgdx),从上面可以看到主角(名为 Hero)(自上而下的视图游戏)并在田野上行走。用户通过在屏幕上移动他的手指来移动角色。手指不需要放在角色上。

角色使用两个动画,一个动画在他向前移动时(即当他的“y”大于零时,因为用户从“天空”看游戏),另一个动画在他向后移动时(即当他的“y”小于零,记住我正在开发一个自上而下的视图游戏)。

最后,我需要角色始终以恒定的速度移动。

简而言之,我想用手指处理角色并将其移动到标记我手指的方向,始终保持恒定速度。

如果我可以在每个增量时间设置角色的位置,这将非常容易,但我使用的是 box2d,它只知道线性速度、脉冲、力等。

我尝试使用 mouseJoint,其中 hitbody 是我的主角(英雄),而 groundBody 是一个看不见的身体。

输入处理器:

我遇到的问题是,如果我非常快地移动手指,角色移动得非常快。我希望角色始终以恒定速度移动。

我尝试的另一种方法是使用 pan 事件:

手势监听器:

我遇到的问题是运动非常不稳定和“脏”。角色在颤抖。

我尝试了这种方法(感谢@hexafraction)。使用此代码,我的角色在屏幕上移动得更加流畅。它并不完美,但它是……

我需要一个关于如何解决这个问题的建议。我的意思是,用我的手指在屏幕上以 CONSTANT SPEED 移动一个 box2d 角色。

非常感谢。

0 投票
1 回答
431 浏览

libgdx - box2d 中的软约束是什么?

我正在创建一个鼠标关节,我碰到了这个术语,它的实际含义。

鼠标关节的文档:-“鼠标关节用于使身体上的一个点跟踪指定的世界点。这是一个具有最大力的软约束。*这允许约束拉伸而不施加巨大的力。”

0 投票
0 回答
42 浏览

java - 在处理中使用 WheelJoint box2d 移动汽车

我目前正在处理(java)中的类似游戏的爬山赛车,并且我正在使用 box2d 处理库。我已经定义了我的汽车、车轮和两个 WheelJoint,但是当我调用函数时,Accelerator() 汽车根本不动。我已经测试了打印 wjArriere 的 motorSpeed 并且它是我想要的实际值,但汽车保持静止。

我希望您能够找到导致问题的原因,如果有不清楚的地方,请随时提出任何问题!

这是我的代码:

汽车构造器:

盒子构造器:

车轮构造器:

应该使汽车移动的功能: