问题标签 [bullet]

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 投票
2 回答
9153 浏览

c++ - Bullet Physics - 在身体的局部空间中应用扭矩脉冲

我目前正在为我正在使用 C++ 和Ogre3D编写的 3D 太空游戏评估Bullet 物理库。通过从 btMotionState 派生并插入我的 SceneNodes,我已经很好地集成了 Ogre3D 和 Bullet,但是现在我在计算应该传递给 btRigidBody::applyCentralImpulse 和 btRigidBody::applyTorqueImpulse 方法以实现的值时遇到了很多麻烦我正在寻找的结果。

当我按下键盘上的 LEFT 或 RIGHT 键时,我希望飞船在本地 Z 轴上滚动。当我按下 UP 或 DOWN 时,我希望它在本地 X 轴上倾斜。当我按下 A 或 Z 时,我希望它在局部 Z 轴的方向上加速/减速。我可以使用一些四元数数学在 Ogre 中完美地实现这一点,并直接在 SceneNode 上应用平移/旋转,但我真的想使用力/扭矩方法在子弹引擎中应用这些值,以便它继续移动/俯仰/滚动即使在用户停止按键之后,摩擦力也会作用在对象上,使其在必要时减慢速度。

那么,我如何计算提供给这两种脉冲方法的必要值,以确保脉冲根据身体当前的方向而不是使用世界轴进行作用?

谢谢,马克

更新:

我能够计算出向前和向后运动所需的脉冲,但我仍在努力调整偏航/俯仰/滚动值的方向,以便将它们与扭矩脉冲法一起使用。这是我进行向前/向后运动的方式:

0 投票
6 回答
14517 浏览

physics - 子弹物理引擎,如何冻结物体?

使用 Bullet 2.76 我试图冻结一个对象(刚体),使其立即停止移动,但仍对碰撞作出反应。

我尝试将它的激活状态设置为 DISABLE_SIMULATION,但它对其他对象几乎不存在。此外,如果对象在禁用时与它“碰撞”,就会开始发生奇怪的事情(对象从静态物体下落等)

我想,暂时将其转换为静态刚体可能会起作用,但是在 Bullet 方面是否有现有的“本机”方法来实现这一点?

编辑:有没有办法关闭特定物体的重力?

0 投票
1 回答
1469 浏览

physics - 您如何在子弹物理引擎中模拟传送带?

我正在编写一个模拟,其中我们需要一些盒子在它们在一组传送带上移动时进行相当准确的建模。目前,我们检测盒子是否与静态输送机表面发生碰撞,并根据输送机的预期速度对每个盒子施加脉冲。有没有办法让实际的输送机表面移动,让它在出料端缠绕或溶解并从进料端生长?只是要使用的项目符号类和方法的名称会很有帮助。

0 投票
1 回答
2836 浏览

physics - 子弹物理问题

对于那些使用过子弹物理的人...

我阅读并运行了 hello world 示例http://www.bulletphysics.org/mediawiki-1.5.8/index.php/Hello_World,我很困惑下一步该去哪里。

hello world 教程包含一个 btStaticPlaneShape 和一个 btSphereShape,它们都是刚体。球体在静态平面上反弹的形状没有问题。

但是,当我在不同位置制作另一个球体时,Bullet 不会记录两个球体形状之间的碰撞,但它都会自动从 btStaticPlaneShape 反弹。什么样的内部魔法会导致 btStaticPlaneShape 自动反弹与之碰撞的对象?

Bullet 中是否有设置在碰撞后自动将物体相互弹开?或者您是否必须手动测试碰撞并自己施加合力?

谢谢。

0 投票
1 回答
380 浏览

game-physics - BulletPhysics 中的子弹

在子弹物理学中模拟子弹的最佳方法是什么?

小胶囊体?某种光线追踪?还有什么?

如果可能的话,一些示例代码会很好。

0 投票
1 回答
1320 浏览

bullet - 有没有人有关于如何使用 Bullet Physics/jBullet 进行 voronoi 粉碎的示例/教程?

我正在尝试使用 jBullet 物理和 voronoi shattering 工作。我可以找到大量有关它工作的视频,只是没有代码示例。

Java 或 C++ 都可以。只需要一些代码的示例。找不到这样做的一个例子。

如果有人有好的示例/教程的链接,我将不胜感激。

谢谢!

最大限度

0 投票
1 回答
1401 浏览

2d - 2D游戏 - 导弹射击问题

我必须制造一辆静止不动但移动炮塔并发射导弹的坦克。

由于这是我的第一个 Android 应用程序,而且我也没有做过任何游戏开发,所以我遇到了一些问题......

现在,在阅读了 LunarLander 示例代码的 Android 教程后,我做了坦克和移动炮塔。所以这个代码是基于 LunarLander 代码的。

但是我在发射导弹时遇到了麻烦,然后按下了 SPACE 按钮。

更新游戏方法

运行游戏的方法 run...

所以问题是,我如何让子弹在从炮塔到屏幕末端的单次空格键按下时发射?

你能帮帮我吗,我似乎在黑暗中......

谢谢,

尼克萨

0 投票
2 回答
2347 浏览

c++ - 从文件加载 Bullet Physics 网格

我正在尝试使用 Ogre 和 Bullet 建立一个城市环境,但我无法弄清楚如何将网格加载到 Bullet 中。谷歌显示了对 Collada 进口商的引用,但这似乎已从 SVN 中删除。

Ogre 网格将是最好的导入方式,但我也有 .dae 和 .blend 文件,如果可能的话可以使用它们。

0 投票
7 回答
2840 浏览

c++ - 在 C 中使用 C++ API?

有一天,我决定开始用普通的 C 语言编写一个视频游戏。
这很有趣,三个月后(我有时没有时间离开工作)我发现自己需要一些物理引擎。
我决定使用 Bullet 物理引擎,因为它似乎是我需要的更好的引擎之一。
然后,我发现 Bullet 并没有真正的 C API,而只有完整的 C++ API。它的 C API 没有维护。
经过一天的诅咒,我将我的项目“转换”为 C++,这是一个大胆的声明,说我对所有堆分配进行了类型转换,我使用 new 和 delete 而不是 malloc 和 free,并在 'extern "C" 中包含了一些定义{ ... }'。
有些人可能会因为我这样做而对我开枪,但我认为没有其他选择可以在 C 中使用性能任务处理的东西,比如这个物理引擎,它只有一个 C++ API。

所以现在,我正在使用 g++ 进行编译,同时仍然主要编写“C”代码。我发现自己不那么开心了,因为代码不再那么纯粹了。
C++ 给了我一些奇怪的错误信息,而我对我经常不喜欢 g++ 解析器的语言没有任何反对。除了我现在可以愉快地将物体相互弹跳之外,我的宠物项目的一些小而纯洁现在已经被遗弃了。

我想知道我是否做对了。我可以征求一些建议吗,我应该继续而不担心为我的“主要”C 代码使用 C++ 编译器吗?是否有其他方法可以在 C 中使用此 API 而不会影响性能或过度维护工作?

0 投票
2 回答
7272 浏览

bullet - 幽灵对象 - bulletphysics

我正在尝试在bulletphysics 中实现一个简单的ghost 对象,这就是我创建ghost 对象的方式:

这就是如何尝试找到碰撞:

但我总是得到一个响应,即我所有的世界对象都与幽灵对象发生碰撞。

任何人都可以帮我获得一个功能简单的幽灵对象吗?

谢谢