问题标签 [box2dweb]

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 回答
54 浏览

javascript - 如何检测对象是否在特定位置休眠?

我目前正在用 box2dweb 编写一个小游戏,为此我需要一些指导:我正在投掷一个盒子或球,当被投掷的物体不再移动时,我必须击中一个特定的地方并触发一个事件,”睡着了”可以这么说。

什么是正确的方法/最佳实践?

0 投票
1 回答
302 浏览

html - Box2dWeb 缺少 ApplyLinearImpuse() 和 ApplyAngularImpulse() 方法?

我一直在努力掌握来自 XNA / Farseer 背景的 HTML5 游戏写作。

似乎 box2dweb 缺少 ApplyLinearImpuse() 和 ApplyAngularImpulse() 方法。

我什至在这里查看了源代码,似乎是这样。

有谁知道为什么不提供这些方法?

0 投票
0 回答
113 浏览

javascript - 方框 2d:重力和碰撞

我正在使用 box2dweb 2.1a3 和一个问题(我想重现愤怒的小鸟):

我读取了一个具有级别的文件,当 box2d 主体(#1)与其他东西(#2)发生碰撞时,我想销毁第一个主体(#1)。但是当我将 b2d 骨放在另一个 b2d 主体上时,这些有时会发生碰撞(级别没有像素完美)。

当然,我可以发布我的代码的某些部分。

0 投票
1 回答
177 浏览

javascript - Box2dWeb 动态与静态实体恢复

我有一个带有一些动态物体的 Box2dWeb 模拟。我对所有动态物体都使用了相同的夹具,如下所示:

我认为将恢复设置为 0 可以防止任何弹跳,但是当产生一堆动态物体时,它的作用就像一个弹簧。例子在这里。我错过了什么?

0 投票
1 回答
325 浏览

javascript - Box2dWeb 自定义形状交互

我有一个带有自定义形状主体的 Box2DWeb 模拟,但它根本不与其他主体交互。调试图显示检测到碰撞但没有效果。阅读有关自定义形状的信息,我没有找到任何设置来启用碰撞,我不知道出了什么问题。自定义形状体是这样创建的,我也在此处发布了示例:

0 投票
1 回答
2019 浏览

javascript - 碰撞后如何在 Box2dWeb 中移除身体

在 Update 函数内部,如果 2 个物体发生碰撞,我想移除它们(或将它们标记为需要移除,并在时间步结束时移除它们)。我将如何做到这一点?

在更新功能中我尝试

但是,它们不会被删除。似乎当我试图删除它们时,this.IsLocked() 设置为 true。

0 投票
1 回答
1481 浏览

kineticjs - 在 KineticJS 中使用变换矩阵

我有一个用 Box2Dweb 模拟的身体和一个附在身体上的图像。我想获取身体变换矩阵并将变换应用于图像(使用变换绘制图像),使其在屏幕上的位置和方向(相对)与身体的位置和方向相匹配。我在 KineticJS 中找不到与转换矩阵一起使用的函数。有用于移动和旋转的单独函数,并且有一个Kinetic.Transform内部包含一些“矩阵”的类,但我不知道如何处理它。某处还有一个_setTransform函数,但同样不知道如何使用它(下划线是否表明我不能直接调用它或什么?)。

我用这段代码在纯 Javascript 中绘制了身体上的图像:

我如何对 KineticJS 做同样的事情?

编辑:显然,我可以从 Box2d 获得的唯一转换是平移和旋转,我可以通过在 Box2d 主体上调用GetPosition()和来获得,然后使用和GetAngle()应用于 KineticJS 图像。所以我在这里并不需要矩阵形式的转换。不过,很好奇。setX(), setY()setRotation()

0 投票
1 回答
2013 浏览

javascript - 如何在javascript中将父类转换为子类

我正在使用box2dweb并且我正在尝试制作一个函数,该函数将添加说明如何根据“身体”形状绘制“身体”。

即:当收到一个'b2BodyDef'时得到形状,并结合外部信息,得到形状规格。为此,我需要将“b2Shape”转换回“b2CircleShape”。

我想用 C++ 这会像

我如何用javascript做类似的事情?我知道还有很多其他方法可以做到这一点(比如在这个例子中传递想要的半径作为参数),但我想做我觉得正确的事情,而不是 hack。

早些时候我有:

0 投票
1 回答
98 浏览

box2d - 在 box2d 中的每一步执行代码

在box2d的每个步骤(解决)中执行代码而不是每帧一次的方式是什么?

0 投票
1 回答
649 浏览

box2d - Box2D - 收集硬币

我对 Box2D 还很陌生,我正在尝试制作一个简单的游戏,其中角色跳跃并捡起硬币。当检测到联系人时,我能够创建一个联系人监听器并删除硬币。问题是字符和硬币相撞。我能够过滤掉他们的联系方式,但我无法确定角色是否击中硬币。我相信肯定有一些相对简单的方法可以做到这一点,因为几乎每场比赛都有收藏品,但我只是没有找到实现这一点的方法。

感谢您的回答。