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

c++ - 射击子弹时 SFML 游戏变慢

我正在使用 SFML 用 C++ 制作小行星游戏。我似乎有射击子弹的问题。尽管每次射击子弹时课程似乎都有效,但游戏速度明显减慢。这是宇宙飞船和子弹的代码。我似乎无法找到它有什么问题!感谢您的时间。

这是船的代码:

这是针对子弹的:

编辑:更改了代码,使其在 Spaceship 类中加载图像,并在创建后将其传递给 Bullet 的资源。问题仍然是一样的。每次射击子弹时,游戏都会变得越来越慢,并且会一直保持缓慢,直到被清除为止。

0 投票
1 回答
372 浏览

java - 在将敌人的子弹动画向下移动时需要一些帮助

我需要帮助弄清楚为什么当敌人的子弹具有相同的代码时它们不会移动...请帮助...我没有将任何一个单独的类作为简单的动画

现在我想你可以看到当我说他们有相同的代码时,我的意思是像相同的代码哈哈。玩家的子弹可以正常工作,但敌人的子弹不会做任何事情,这真的让我失望

}

EnemyShot 是一个动画 playerShot 是一个动画 没有单独的敌人或玩家类。请帮忙

0 投票
2 回答
4523 浏览

physics - Bullet 中的惯性张量为零有什么作用?

在 Bullet Physics 库中,构造刚体时,惯性张量的默认参数是零向量。

我对惯性的理解相当初级,但从方程

扭矩 = 惯性 * 角速度

我希望零惯性物体上的角速度是不确定的。

构造刚体的文档说

对于动态对象,可以使用碰撞形状来逼近局部惯性张量,否则使用零向量(默认参数)

那么这个零惯性会发生什么?我误解了方程式吗?或者在 Bullet 中具有零惯性类似于在将物体定义为相对于方向是静态的时具有零质量?

0 投票
2 回答
1044 浏览

android - 使用 Bullet 在球体内的球

我是 Bullet 和所有 3D 和 phisycs 的新手,所以不要生气 :) 我需要在里面创建一个大的静态刚性球体和一个小的动态球体。我想像瓶子一样使用大的,所以小球可以在里面移动,但不能离开球,除了顶部的一个。我在 Blender 中编写了 2 个模型(当然我在大球体上打了一个洞),创建了一个世界并在里面放置了对象。但是当我启动应用程序时,小球体以极快的速度从大球体中抛出。如果有帮助,我还将使用 Bullet 和 Android 的 GDX 库。

此代码初始化世界。

还有一些用于创建大球体的代码

小球体的代码

构造函数类只创建 btRigidBodyConstructionInfo 和 btCollisionShape 对象,构造球体并将其放置在世界中。

那么,你能告诉我如何创建一个里面有一个球的空球体吗?

PS拜托,不要告诉我谷歌,我已经做到了

PPS 对不起我的英语

0 投票
1 回答
445 浏览

c++ - btGhostObject 是否允许使用复杂的网格(不仅是 AABB)?

它的文档很可悲:

btGhostObject 可以跟踪所有重叠的对象默认情况下,这种重叠基于 AABB 这对于创建角色控制器、碰撞传感器/触发器、爆炸等很有用

这是否意味着它只是其底层网格的 AABB,因此只检测与 AABB 的碰撞而不是复杂的网格结构?

0 投票
1 回答
477 浏览

c++ - Irrlicht 服务器端

我目前正在使用 Irrlicht 开发多人游戏。

所以很明显,在客户端我们有 Irrlicht 来执行渲染,而服务器端我们有 Bullet 来执行物理计算。

我们将 Qt 用于其余部分(GUI、网络……)。

Irrlicht 提供了一些有用的功能,例如:

  • 从存档文件加载网格,纹理,...而不解压缩它。

我们将所有资源存储在一个 TAR 文件中,服务器将其发送给客户端,然后 Irrlicht 加载它(无需解压缩),非常有用。

但是 Bullet 需要知道模型才能执行碰撞检测,所以我需要加载模型。

一个解决方案是使用 Qt 和 libarchive 开发一个 TAR 解析器,并告诉 Bullet 使用ConvexDecomposition::WaveFrontObj. 但更简单的解决方案是使用 Irrlicht 从存档中加载网格(因为代码已经完成)。

那么,有没有办法在服务器端使用 Irrlicht 而无需渲染到视频驱动程序?

0 投票
0 回答
490 浏览

ogre - 子弹扭矩

我正在开发一款涉及宇宙飞船的游戏。我们正在使用 OGRE 和 Bullet。

玩家的船应该用鼠标进行俯仰和偏航——例如,向左移动鼠标将使船向左偏航。问题是,我不知道如何在 Bullet 中应用扭矩。

在我们开始集成 Bullet 之前,我们的解决方案是像这样直接修改 OGRE 场景节点(使用 OIS 进行输入):

这很好用。

现在我们正在使用 Bullet,我的计划是对刚体施加扭矩,如下所示:

然后,在逐步模拟之后,更新场景节点的方向,如下所示:

但是有了这个设置,我根本无法确定船的方向。

(100, 10, 200)接下来,我尝试无论如何都对每一帧施加一个扭矩脉冲,然后打印出来shipTransform.getRotation().getAngle())。始终为 0。此时,我变得非常困惑,因为您会认为始终施加扭矩会使身体的方向发生变化。

所以,我的问题是:我错过了什么愚蠢的东西btRigidBody::applyTorqueImpulse()吗?还是我完全找错了树?


PS:shipRigidBody构造如下:

我还有代码可以根据键盘输入向前或向后加速船,并且该代码(使用btRigidBody::applyCentralImpulse())工作正常。

0 投票
3 回答
1967 浏览

c++ - DirectX 11 - 子弹调试绘图

我在自己的 DirectX 11 游戏引擎中使用 Bullet Physics,并且我想使用 Bullet 提供的调试绘制类。基本上,您正在创建一个类,该类接收应由项目符号绘制的所有线条。是否有一种简单快捷的方法可以在 DirectX 11 中绘制一条 3D 线(最好不使用缓冲区和着色器以及所有这些东西)?

0 投票
1 回答
1601 浏览

visual-studio - 为 Windows 编译 64 位双精度 BulletPhysics

我正在尝试创建一个 64 位 Windows 版本的 Bullet Physics,启用双精度。

如果我使用提供的 VS2010 项目,我可以构建 64 位的 Bullet Physics,但如果我尝试#define BT_USE_DOUBLE_PRECISION,我会得到大量的构建错误。

如果我使用 CMake 生成一个新项目,我可以轻松地在 CMakeLists.txt 中启用双精度,但我找不到让它生成构建 x64 的项目的方法。

我究竟做错了什么?

0 投票
0 回答
350 浏览

performance - 如何尽可能快地模拟 JME3 子弹物理

我正在使用子弹物理进行汽车模拟,我希望能够加快模拟速度——甚至能够尽可能快地运行物理模拟。

我尝试调用 pSpace.update(1/60, 1) (直接调用 DynamicsWorld.stepSimulation),然后监听 PhysicsTick 并再次调用(=> 无需等待)。不幸的是,看起来线程并没有等待子弹的所有工作完成,然后对象穿过表面(当我克服 StackOverflowError 时)。

计算完成后,我可能需要一些机制来通过子弹调用,我可以再次调用它。

还是子弹有自己的时钟无法加速而我完全错了?我看到它作为在给定时间的单一力计算工作的整个事情。

我知道 JME3 可以通过调用 stepSimulation(speed * tpf, 4) 来加速子弹,但它最多只能将模拟速度提高 4 倍,因为它连续执行 4 步,是这样吗?

非常感谢任何人的提示。