问题标签 [box2d]

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

c# - Box2d:设置活动和非活动

我正在使用 Box2d - Box2dx 的 XNA 端口用 C# 编写 XNA 游戏。

像树或僵尸这样的实体被表示为游戏对象。GameObjectManager在游戏世界中添加和删除它们:

controllersGameObjectController实例的集合。

worldState.ModelsGameObjectModel实例的集合。

当我以这种方式从 Box2d 中删除 GameObjects 时,会调用此方法:

世界查询工具:

此方法会引发错误:

为什么会这样?我能做些什么来避免它?这个方法在被调用之前已经被调用了很多次body.SetActive()。我觉得这可能搞砸了。

0 投票
5 回答
3367 浏览

lua - 物理游戏编程 box2d - 使用扭矩定位类似炮塔的物体

这是我在尝试使用LÖVE引擎实现游戏时遇到的问题,该引擎涵盖了带有 Lua 脚本的box2d 。

目标很简单:一个类似炮塔的物体(从顶部看,在 2D 环境中)需要确定自己的方向,使其指向目标。

炮塔在 x,y 坐标上,目标在 tx,ty 上。我们可以认为 x,y 是固定的,但 tx, ty 往往从一个瞬间到另一个瞬间变化(即它们将是鼠标光标)。

炮塔有一个转子,可以在任何给定的时刻(顺时针或逆时针)施加旋转力(扭矩)。该力的大小有一个上限,称为 maxTorque。

炮塔还具有一定的转动惯量,它对角运动的作用与质量对线性运动的作用相同。没有任何摩擦,所以如果炮塔有角速度,它会继续旋转。

炮塔有一个小的 AI 功能,可以重新评估它的方向以验证它指向正确的方向,并激活旋转器。这种情况每 dt 发生一次(每秒约 60 次)。现在看起来像这样:

... 它失败。让我用两个说明性的情况来解释:

  • 炮塔围绕目标角度“振荡”。
  • 如果目标“就在炮塔的后面,顺时针方向一点点”,炮塔将开始施加顺时针扭矩,并继续施加它们直到它超过目标角度的那一刻。那时它将开始在相反方向上施加扭矩。但它会获得很大的角速度,所以它会继续顺时针移动一段时间……直到目标“刚好在后面,但有点逆时针”。它会重新开始。所以炮塔会摆动甚至转圈。

我认为我的炮塔应该在达到目标角度之前开始在“最短路径的相反方向”上施加扭矩(就像停止前的汽车制动一样)。

直觉上,我认为炮塔应该“在距离目标大约一半时开始在最短路径的相反方向上施加扭矩”。我的直觉告诉我,它与角速度有关。还有一个事实是目标是移动的——我不知道我是否应该以某种方式考虑到这一点,或者只是忽略它。

我如何计算炮塔必须“开始制动”的时间?

0 投票
1 回答
1590 浏览

cocos2d-iphone - Box2d + CoCos2d:自动移动对象以模拟游戏中的计算机移动

我正在开发曲棍球游戏,并且正在实施单人游戏模式。我正在尝试在进攻模式下移动“电脑”的球拍(向球移动)。我正在使用 CoCos2d 和 Box2d。我正在使用 MouseJoints 移动桨。问题是桨根本不动!

在 init 方法中调用 tick

...

0 投票
2 回答
1613 浏览

c++ - 仅在我的 2d 引擎中集成 Box2D 碰撞检测?

我已经在我的引擎中集成了 box2d(Debug Draw 等),并且我可以在一个世界中加入一些 2d 正方形/矩形等。

我看到这篇文章,用户基本上没有使用世界进行碰撞检测,但是用户没有解释他如何使用歧管(b2Manifold)等。

另一个帖子,在cocos2d论坛,(在第三个回复中向下滚动到用户Lam)

任何人都可以帮我解决这个问题吗?基本上是想在不需要使用 b2World 等的情况下添加碰撞检测。

非常感谢!

0 投票
1 回答
725 浏览

c++ - 问题构建 dschaefer / android-box2d

我正在尝试构建dschaefer android-box2d,并且确实遵循了食谱。尝试使用 Eclipse 构建 TestBox2d 时确实出现此错误:


制作所有 /cygdrive/c/android/android-ndk-r3/build/prebuilt/windows/arm-eabi-4.2.1/bin/arm-eabi-ld \ -nostdlib -shared -Bsymbolic --no-undefined \ - o obj/libtest.so obj/test.o -L../box2d/lib/android -lbox2d \ -L/cygdrive/c/android/android-ndk-r3/build/platforms/android-3/arch-arm /usr/lib \ -llog -lc -lstdc++ -lm \ /cygdrive/c/android/android-ndk-r3/build/prebuilt/windows/arm-eabi-4.2.1/lib/gcc/arm-eabi/4.2 .1/interwork/libgcc.a \

/cygdrive/c/android/android-ndk-r3/build/prebuilt/windows/arm-eabi-4.2.1/bin/arm-eabi-ld:找不到-lbox2d make:*** [obj/libtest.so ] 错误 1


我所做的唯一更改是在 TestBox2d\Makefile 中,我确实更改了 NDK 的路径。

这里还有一些其他的有同样的问题,但我不知道如何解决它。

0 投票
1 回答
1412 浏览

box2d - Box2D SetAsOrientedBox

Box2D 中的“SetAsOrientedBox”命令不再起作用。我找不到它的新命令。有人可以告诉我新命令吗?

旧示例:boxDef.SetAsOrientedBox(0.4, 0.1, new b2Vec(0.1, 0.1), 0.3);

0 投票
1 回答
315 浏览

iphone - 是否可以更改 2-3 次 f->SetSensor()?

我使用 cocos2d-iphone-0.99.2 并集成在 box2d 中。我有 2 种带有标签 1 和 2 的精灵。我还为它们创建了身体和形状定义。我想要做的是让 sprite1 种类在 sprite2 与它们碰撞时充当实体或不实体。我试过这段代码:

固体是布尔值。当我第一次将夹具更改为传感器时,一切都很好,但是当我尝试恢复并再次更改为固态时,我的应用程序崩溃并出现以下错误:断言失败:(manifold->pointCount > 0),函数 b2ContactSolver,文件 /Documents /myapp/libs/Box2D/Dynamics/Contacts/b2ContactSolver.cpp,第 58 行。

是否有可能以某种方式更改fixture->SetSensor 几次,如果是这样......如何?非常感谢任何帮助。

0 投票
1 回答
3812 浏览

2d - 如何在Box2D中制作台球并防止球卡在墙上?

作为一个快速概述:我正在尝试使用 Box2D 作为基础制作台球游戏。现在我的问题:

我应该如何设置台球和边缘以使其正常工作?这些球有时似乎无缘无故地粘在边缘。我有四个静态墙对象,在桌子边缘周围恢复为 1。

每个球具有以下属性:

母球的密度为 101.356358 (kg/m^2)

当对 1.2 kg-m/s 的球杆施加脉冲时,球似乎以正常的池球速度移动,并且大部分正确地从墙壁反弹。然而,有时当一个球撞到墙上时,它根本不会反弹,它只是停下来,或者只是继续沿着墙壁移动。这看起来很奇怪,而且似乎不正确。有没有更好的方法来设置它?

0 投票
1 回答
996 浏览

iphone - 如何在 iPhone 的 box2d 中制作弧形

嘿伙计们,我正在寻找一些人如何在 box2d 中为 iphone 实现曲线或凹形,我坚持这一点......在此先感谢...... Umer Sufyan。

0 投票
1 回答
642 浏览

iphone - cocos2d 和 box2d .. 创建地图和世界

所以我的问题实际上是关于在我的游戏中创建不同的关卡。我正在使用 cocos2d 和 box2d,现在我有很多代码实际上构建了我的世界,我不能做窗格或类似的东西,因为老实说我不知道​​如何..

那么初学者使用静态对象创建世界然后我可以将自己的精灵添加到该世界并使用box2d移动的任何提示和指针?