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

javascript - 将 Box2d 与 EaselJS 形状一起使用?

我正在尝试学习 Box2d 和 EaselJS。到目前为止,我一直在使用 Box2d 的“调试”形状。如何从 EaselJS 制作自定义形状,启用物理?例如,我有以下代码在屏幕上生成随机球。

如何使用 EaselJS形状对象?

谢谢!

0 投票
1 回答
112 浏览

box2dweb - 在 box2dweb 中实现边界监听器

我对 box2d 比较陌生,我使用的是 box2dweb 版本。我希望能够检测到运动物体何时离开了我的舞台边界。Box2D.Dynamics.b2BoundaryListener 是显而易见的答案,但 box2dweb 构建显然不支持它。

是否有一种有效的方法来创建侦听器,而不是在每次调用 update() 期间原始地检查每个主体的坐标?我尝试使用静态物体作为传感器,但它们不检测运动物体。

0 投票
1 回答
562 浏览

javascript - 带有 b2FixtureDef.shape.SetAsArray 的 Box2D 主体不适用于类似俄罗斯方块的形状

我尝试使用 box2d 的 SetAsArray 函数对俄罗斯方块形状进行建模。但是这些形状没有正确地与其他物体碰撞,有时会掉下来,有时会潜入。方形或圆形没有问题。

我做了一个小提琴来展示效果:

http://jsfiddle.net/lavisrap/JrzPH/598/

0 投票
1 回答
44 浏览

javascript - box2dweb 中的这段代码如何模拟万有引力,为什么它使用 if 语句?

该代码用于在 box2dweb 中模拟万有引力。为什么有两种不同的方法来计算万有引力?if 语句是做什么用的?我在互联网上看到了这个invSqr: Boolean; /// If true, gravity is proportional to r^-2, otherwise r^-1,但我不明白这个 invsqr 是什么意思。

0 投票
1 回答
185 浏览

javascript - Box2d 物体不稳定且不会静止

我正在尝试将 box2d 作为游戏项目的 PoC 进行试验,我设法创建了世界和身体,并且默认 DebugDraw 到位。一直在玩恢复原状、密度和摩擦,但无法获得所需的行为,并且身体不稳定,并且一直闪烁/弹跳太快。


在此处查看运行代码:http: //jsbin.com/qoceranu/1/edit


我尝试过以下事情:

  • 将恢复值设置为 0.0 但这并没有给出正确的行为。
  • 尝试了各种缩放因子。physics.SCALE这是当前实现中每米的像素数。它默认为canvasHeight / physics.heightOfWorldInMeter.
  • 尝试了各种动画步骤时间。
  • 尝试使用requestAnimFrame

由于我是新手,因此我相信我可能会做一些根本错误的事情。你认为是什么问题?身体永远不会休息,自然行为也不会。

提前致谢。

0 投票
1 回答
209 浏览

javascript - 在 box2dweb 中如何销毁创建的身体

我在 box2dweb 中使用这种非常标准的方式在鼠标单击时创建主体:

我真的不知道如何为我创建的实体插入名称或 ID(最终我可以num++在每次创建时添加一个 var)。另外,我不知道如何通过id取回我的body并调用方法.DestroyBody专门删除它。

我正处于 JavaScript 和 Objective C 的早期阶段,所以为 Actionscript 制作的方法和文档让我抓狂..

提前致谢。

问题更新:

我找到了一种方法来取回我已经创建的对象,使用这种方式在所有对象中找到我想要的对象:

注意:myBody 是全局的

prodNum 是一个全局变量,在每个循环中都有一个“++”。有了这个,我可以使用身体的 var 名称和 bodyDef.userData 属性来回忆我的身体。

使用以下函数,在通过 window.onload 执行的 init() 中调用,我可以,如 console.log 所示,更改我想要的检索到的正文,但是没有更改应用于画布中的正文,即使它日志中的属性导致修改我无法注意到屏幕上的任何变化。

无法理解为什么会发生这一切......另外我已经设置了 step() 函数,它应该每 x 毫秒刷新一次我的世界......请帮助

0 投票
1 回答
138 浏览

javascript - 为什么这个文件没有运行 example5.js 中的 javascript?

我在互联网上找到了这段代码。我粘贴到我的记事本++中,然后更改了这两个文件以匹配我在桌面上创建的文件。

我在 html 文件中有脚本标记,但我已经在代码和文件中尝试过,但它们似乎都不起作用。

由于某种原因,该页面无法正常工作。我想知道这个页面有什么不同以及为什么它不起作用。

然后创建了 example5.js 文件并将它也放在我的桌面上。这应该显示一个画布以及您可以在屏幕上拖放和拖动的几个对象。

下面是代码应该在屏幕上产生的内容。我想以这个为例,但无法让它工作。

在此处输入图像描述

这就是我目前拥有文件的方式:

0 投票
0 回答
878 浏览

javascript - 上下文未定义,javascript

所以我有上面的代码,我得到一个参考错误上下文未定义。这是为什么?我的意思是我确实写道:

但看起来它不起作用......为什么?我错过了什么?会不会是 .getContext 写得不正确?

0 投票
1 回答
376 浏览

javascript - Has b2DebugDraw and b2ContactListener been replaced in liquidfun.js?

I'm trying to replace my current Box2D library (box2dweb.js) with Google's LiquidFun library.

The major difference seems like they placed all the b2#ClassName# classes in the global scope instead of keeping them modular (in a Box2D.* namespace like box2dweb did).

BUT it also seems like they've omitted a few b2#ClassName#, two of which I was using from the Box2dWeb.js version:

  • b2DebugDraw, and;
  • b2ContactListener;

Are those deprecated / not fully implemented / forgotten?

0 投票
1 回答
61 浏览

box2d - 有没有办法使用 box2d 来改变引力?

我正在尝试创建一个场景,其中上半部分有重力,下半部分有重力。

我如何在 Box2D 中实现这一点,因为我只能为整个世界定义重力。我需要将屏幕分成两个世界吗?