问题标签 [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 投票
1 回答
1507 浏览

java-native-interface - 哪个本机函数导致 JNI 代码中的 EXCEPTION_ACCESS_VIOLATION?

我正在尝试使用由 libgdx Android Java 开发框架(gdx-bullet)包装的子弹物理库,并在一段时间的随机工作后出现 JVM 崩溃或“称为纯虚拟方法”的崩溃。

其中一些生成 hs_err_pidXXXX.log 文件,这些文件通常包含:

我被告知这可能是 Java GC 释放 Java 代码中不再引用的对象的问题,但子弹本机代码仍然需要它。

我查看了我的代码,但没有发现这种情况,这并不意味着它们不存在。我可以寻找更长的时间,但我认为如果我继续采用这种方法,我需要学习如何自己调试这种情况。

所以我在 gdx-bullet.dll 上运行了 dumpbin.exe,发现如下:

然后我添加了 0x6AB80000 + 0x1c217 = 0x6AB9C217 并在 dumpbin.exe 反汇编中查找:

这一切都很好,但是关于我被困在哪里,因为我不知道 [edx+8] 的位置。

我有使用的子弹的源代码(大约是这个)

我安装了 windbg.exe 并设法让 userdump.exe 生成一个 javaw.dmp 文件,但不确定要在其中查找什么以及如何查找。我试图使用“r”命令找出 rdx 的内容,但它是 0x0,而不是 hs_err_pid 文件,它是一些随机值。

我找到了一些构建脚本,但我怀疑我是否可以向它们添加“包含调试信息”标志,然后让它们及时工作。

我该怎么做才能确定哪个特定的本地方法有问题?

如果我知道,那么我可以查看它的源代码并了解我传递给它的错误参数或它需要的 GC 已取消分配的对象。

0 投票
1 回答
278 浏览

c# - 多方向子弹[阅读]

一段时间以来,我一直在为一个我仍在为学校工作的项目编写代码,即使它已经完成了。

我想制作一个手榴弹,向与之相撞的敌人发射子弹,但我需要使用 atm 的帮助是一次向所有不同方向发射 8 发子弹。

这是我老师给我的代码(我向他寻求帮助)

显然,这将使它在鼠标右键单击时向各个方向射击,但是每次我尝试它时,我的游戏都会直接崩溃然后我们有一个 pew 类,它是子弹,这就是我想同时朝这些方向射击的东西

你们可能无法帮助我向您展示的代码,我花了一段时间寻找一种方法来做到这一点,但我似乎找不到任何东西

以前的示例和/或源代码真的很有帮助,至少是另一种看待这个的方式,谢谢。

当它崩溃时显示给我,它告诉我索引超出范围或为负数,如果你们能告诉我多向子弹的基本代码,我会很高兴

0 投票
0 回答
109 浏览

java - jBullet - 6DOFConstraint 剧烈振荡

我制作了一个简单的多循环蛇身。我在每个身体之间有一个6DOFConstraint,角度是通过增加/减少旋转的上限和下限来控制的,从而改变角度。

绕水平轴旋转效果很好,但是当绕垂直轴旋转时,一旦达到大约1.05rads的角度,两个物体就会剧烈振动。

屏幕截图可以在这里找到,其中的描述更详细地介绍了我所做的事情:

http://www.youtube.com/watch?v=OQu-YyxLvbw

以下屏幕截图显示了蛇的“头部”在约束仍然存在的情况下线性分离,以尝试消除发生碰撞问题的可能性:

http://www.youtube.com/watch?v=6wso6HDjqXA

我尝试了以下技术来解决问题,但都没有奏效:

  • 将恢复(弹性)设置为非常低——同样的情况
  • 将线性阻尼和角度阻尼都设置为 0
    到 1 之间的值范围——同样的情况
  • 将角度设置为从大于 1.05 开始 - 发生同样的情况。
  • 继续增加超过 1.05 的角度,看看是否平静下来——相反的情况会发生,它会变得更加猛烈。
  • 试穿单关节——同样的情况
  • 检查深度渗透 - 不存在
  • 线性分离两个物体以排除碰撞问题,但保持关节相同——同样发生。
  • 将蛇(除了头部以外的所有部分的质量 = 0f)漂浮在地面上以消除地面相互作用 - 也会发生同样的情况
  • 在锁定位置关闭重力 - 行为延迟到 1.43rads
  • 增加蛇的大小(比例),因为众所周知,jBullet 在较小的项目上存在渲染问题——没有变化。
  • 尝试将身体更改为胶囊形状 - 没有变化
0 投票
4 回答
3287 浏览

c++ - 无法编译简单的 Bullet Physics 应用程序

我正在尝试从 Visual Studio 2012 Express 中的 Bullel Physics Wiki 编译Hello World程序。
我能够生成并导入运行示例所需的三个库项目,但链接它们时似乎存在问题。
在编译日志中有 38 个这样的错误,每个库都重复了很多次。

我不明白出了什么问题。

0 投票
2 回答
2769 浏览

java - 不确定如何在 Java Slick 游戏中实现子弹系统?

因此,我一直在关注 Slick API 2D Game Java 教程的教程,并且掌握了如何使用 API 的基础知识。但是,当我在玩游戏并尝试制作游戏时。我试图在我的 2D 太空射击游戏中实现子弹/射击系统。而且我似乎找不到办法做到这一点!

我试过在 Google 和 YouTube 上四处寻找,但根本没有帮助......!我现在所做的所有游戏就是从右向左移动一艘船。我希望能够做到每次按下空格键时都会发射子弹状物体。我只是不知道该怎么做...我希望有人可以简单地向新程序员解释一下!

0 投票
5 回答
1660 浏览

c++ - 如何在 Bullet 中找到投射光线以避免碰撞的位置?

假设我们在 A 点有一个物体。它想知道它是否可以移动到 B 点。它的速度有限,所以它只能一步一步地移动。它向其移动的方向投射光线。射线与物体碰撞,我们检测到它。如何获得一种安全地通过我们的光线(避免碰撞)的方法?

在此处输入图像描述

顺便说一句,有没有办法在对象投射的情况下使这种事情起作用,它会像简单的光线投射一样/几乎快吗?

在此处输入图像描述

有没有办法在一些不同的路径中找到最优的?

在此处输入图像描述

0 投票
0 回答
200 浏览

c++ - Bullet 碰撞检测库是否提供对世界对象几何图形的布尔运算?

我需要类似CGAL 在 3d 网格之上但在 lib Bullet 中提供的简单布尔运算。所以我想知道 Bullet 中的网格是否有 3D 布尔运算?(在手册中找不到任何专门的章节,我是瞎了吗?)

0 投票
1 回答
125 浏览

c++ - 基于 btIDebugDraw 的 CGAL 渲染器(没有 QT)?

是否有一组复杂的结构/渲染器(如 Nef Polyhedra 和 Polyhedron - 都适合我)和一个简单的渲染器(引擎),可以像子弹一样工作btIDebugDraw- 虚拟类- 你实现 fiew 渲染函数,提供该渲染的实例构造渲染器的引擎对象(在子弹情况下World likebtDiscreteDynamicsWorld)在这里它将是 Nef Polyhedra 或 Polyhedron 渲染器。CGAL中有这样的课程吗?或者如何使用btIDebugDraw渲染多面体(CGAL::Polyhedron_3<Kernel>)和Nef多面体(CGAL::Nef_polyhedron_3<Kernel>)的现成实现?

0 投票
1 回答
5648 浏览

visual-studio-2010 - VS2010 使用命令行参数调试

我已经在该project properties -> debugging -> command arguments部分中为我的应用程序设置了命令行参数。

如果我直接从命令行运行程序,我会这样做:

progname arg1 arg2

所以我将 VS 中的命令行参数设置为

arg1 arg2,

如此处所述

但是,该程序的运行方式似乎与从命令行运行它的方式不同。参数是文本文件,并且在命令行中它可以正确加载这些文本文件,在 VS2010 中它不会以某种方式加载。任何想法为什么?


编辑:更新/澄清帖子:

我没有任何例外。

我的解释可能过于简单化了这个问题。我实际上并没有加载文本文件,而是加载了一个物理引擎,它应该在运行时确定,所以我需要命令行参数。

在高层次上用于加载物理引擎的代码是:

我正在使用 Bullet,它的运行方式如下:

arg1是物理引擎名称,arg2是要加载的物理文件,但它挂在arg1.

我在命令行上调用它的具体方式是:

如果我在命令行上执行此操作,它可以工作,但是如果我将这些参数传递给调试器,我会遇到问题could not load physics engine

这可能是物理引擎加载器内部的结果,它来自另一个来源,但我的猜测是,无论我在命令行中还是在 VS 的调试器设置中传递这些参数,这应该以相同的方式工作。

我将查看 UAC 设置,看看他们说什么。

0 投票
0 回答
750 浏览

game-physics - 子弹物理:如何使软体“静止”(有点)?

我对 Bullet 还很陌生,一周前开始使用它。我主要玩刚体,一切都按预期工作,但现在我还需要在我的模拟中添加柔体,事情变得有点复杂。

我想要什么:我必须创建一个简单但不切实际的场景:主要对象是一个悬浮在世界中心的可变形球,它不靠在任何东西上,只是“漂浮”在那里。然后,我应该能够将各种刚体扔向球,使其变形但不移动。

我尝试了什么:我的问题是我不知道如何让我的主要软体漂浮在场景的中心。我尝试将其每个节点的质量设置为零,但显然它不再变形。我还改变了它的总质量,它给出了相同的结果(我不确定它是否与将所有质量设置为 0 相同)。我也尝试给它 STATIC 标志,但这并没有改变任何东西。

我可以尝试的方法(但似乎过于复杂):一种可能性是将球悬挂到具有点对点约束的固定位置,但我担心它会使球变形并可能产生不需要的摆动运动。我的另一个想法是将球封闭在一个由飞机制成的隐形盒子中,该盒子将其保持在空中但不会与其他物体(尤其是我将扔的刚性物体)发生反应,但我担心这种解决方案会实施起来很麻烦,并且当球压在盒子上时盒子的表面可以辨认。

总结:我需要一个保持相同中心的球形软体。如果我向它扔东西,我应该看到它的表面波纹,但它不应该“全球”移动。有没有办法干净地做到这一点?

谢谢您的帮助!

(我在 Bullet 论坛上问过同样的问题,但没有答案)