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

objective-c - 如何消除box2d中碰撞物体的反弹?

我试图在box2d两个对象碰撞时删除一个对象。

当我的两个物体发生碰撞时,其中一个物体会从另一个物体上反弹。它确实删除了另一个对象,但我希望它让它看起来像是经过而不是反弹。

我将身体 Def 类型设置为b2_staticBody.

0 投票
2 回答
3112 浏览

iphone - 如何在 box2d 体内设置精灵的位置?

基本上我的身体有 2 个多边形。当我为 userData 添加精灵时,纹理的位置不是我想要的位置。我想要做的是调整纹理在体内的位置。这是我设置它的代码示例:

0 投票
2 回答
334 浏览

xna - Box2d 可以在 Xbox 上运行吗?

我正在 XNA 中开发游戏。如果它与 Xbox 兼容,那就太好了。Box2d 可以在 Xbox 上运行吗?有什么方法可以包含我使用的任何第三方库吗?

0 投票
3 回答
12653 浏览

actionscript-3 - 将凹多边形分解为凸多边形

我正在使用仅支持凸多边形形状的游戏物理库(Box2D)。但是,我希望关卡构建器能够只指定凹多边形而不必担心这一点。

那么,如何自动将凹多边形分解为凸多边形(甚至所有三角形)。速度会很酷,但易于实施更重要。分解只会在游戏初始化时完成。

(我的语言是 Flash/ActionScript 3,但这不重要)

0 投票
1 回答
1835 浏览

c# - 询问 Box2d 是否发生碰撞

我正在使用 Box2dx(移植到 C#;针对 XNA 进行了优化)。它处理碰撞解决,但我如何判断两个对象当前是否正在碰撞?

这是我正在尝试编写的函数:

collider1.Model.BodyBox2d在哪里Body,并且collider1.Model.BodyDef是 Box2d BodyDef。(当然,同样如此collider2。)

更新:看起来像联系听众,或者这可能有用:

为什么GetFixtureList()返回一个夹具?

0 投票
1 回答
3299 浏览

c# - Box2dx:World.QueryAABB 的用法?

我将 Box2dx 与 C#/XNA 一起使用。我正在尝试编写一个函数来确定一个物体是否可以存在于给定点而不与任何东西发生碰撞:

有没有更好的方法来做到这一点?应该如何World.QueryAABB工作?

这是较早的尝试。它被打破; 它总是返回假。

0 投票
6 回答
4798 浏览

lua - 宇宙飞船的二维轨迹规划与物理

我正在用太空中的船只实现 2D 游戏。

为了做到这一点,我使用了 LÖVE,它用 Lua 包装了 Box2D。但我相信任何比我更了解物理的人都可以回答我的问题——因此伪代码被接受为响应。

我的问题是我不知道如何在启用了 2D 物理的世界上正确移动我的宇宙飞船。更具体地说:

有质量的船m位于初始位置{x, y}。它的初始速度向量为{vx, vy}(can be {0,0})。

目标是 中的一个点{xo,yo}{vxo, vyo}船必须按照最短的轨迹到达目标,其速度为(或接近目标)。

有一个update(dt)被称为频繁调用的函数(即每秒30 次)。在此功能上,船可以通过对自身施加“脉冲”来修改其位置和轨迹。脉冲的大小是二元的:你可以在给定的方向上应用它,或者根本不应用它)。在代码中,它看起来像这样:

第一个???是表明在某些情况下(我猜)最好“不要冲动”并让船“漂流”。第二???部分包括如何计算给定 dt 上的脉冲角。

我们在太空中,所以我们可以忽略空气摩擦之类的东西。

虽然它会非常好,但我并不是在找人为我编写代码;我将代码放在那里,以便清楚地理解我的问题。

我需要的是一种策略——一种攻击它的方法。我知道一些基本的物理学,但我不是专家。例如,这个问题有名字吗?之类的东西。

非常感谢。

编辑:Beta 为此提供了一个有效的策略,Judge 在评论中直接在 LÖVE 中实施了它。

EDIT2:经过更多谷歌搜索后,我还找到了 openSteer。它在 C++ 上,但它做了我假装的事情。这可能对任何遇到这个问题的人都有帮助。

0 投票
3 回答
8781 浏览

physics - Box2d 中的摩擦

我正在使用 Box2d 进行自上而下的游戏。“地面”是一系列瓦片,其中每个瓦片都是具有传感器形状的静态体。即使物体并没有真正与地面“碰撞”,我可以让摩擦生效吗?

如果 Box2d 不允许我这样做,我考虑尝试通过检测当前正在移动对象的力并施加与之相反的力来实现我自己的,但我不太确定如何检测该力。

0 投票
1 回答
776 浏览

c# - Box2dx:指定在光线投射中要忽略的固定装置?

在我的游戏世界中,每个人都有附有传感器形状的固定装置。当我进行光线投射时,它会击中这些灯具,但我只想击中具有至少一种不是传感器的形状的灯具。这可能吗?

我正在使用Box2dx - C# 端口。

另外,回调有什么作用?

这是我正在调用的光线投射功能。文档说回调可用于指定要返回的形状数量,但我不知道如何做到这一点:

0 投票
2 回答
8841 浏览

c# - Box2d:最大可能的线速度?

我想我已经将 Box2d 配置为对任何身体都有某种最大速度,但我不确定。我(100000000, 100000000)施加一个像(100, 100)

我正在使用 Box2d XNA C# 端口。

我的游戏是自上而下的 2d。

以下是一些可能相关的代码:

这是一些应用脉冲的示例代码:

如果Constants.PLAYER_IMPULSE_CONSTANT是从1000f1000000000f的任何地方,玩家最多可以移动到(-120, -120)(120, 120)。如果常数较小,例如1f,玩家将移动得更慢。

此代码用于为游戏世界中的所有内容设置物理:

会不会是线性阻尼?我将其从 更改10.0f0,没有任何效果。

更新:线性阻尼的怪异:我对使用上述应用脉冲方法移动的身体进行了这些观察:

为什么线性阻尼在50f和之间存在一定的灵敏度范围60f