【问题标题】:Bullet physics(ammo.js in asm.js) how to get collision impact force子弹物理(asm.js 中的 ammo.js)如何获得碰撞冲击力
【发布时间】:2015-08-13 14:35:44
【问题描述】:

所以我设法让 ammo.js 中的碰撞检测像在 Physijs 中一样工作。这是有效的代码

var i,
    dp = this.dispatcher,
    num = dp.getNumManifolds(),
    manifold, num_contacts, j, pt;

for (i = 0; i < num; i++) {
    manifold = dp.getManifoldByIndexInternal(i);

    num_contacts = manifold.getNumContacts();
    if (num_contacts === 0) {
        continue;
    }

    for (j = 0; j < num_contacts; j++) {
        pt = manifold.getContactPoint(j);

        //console.log('body 1: ', manifold.getBody0());
        //console.log('body 2: ', manifold.getBody1());

        console.log('COLLISION DETECTED!');
        // HERE: how to get impact force details?
        // pt.getAppliedImpulse() is not working
    }
}

在一些论坛上,我发现此功能提供了有关冲击力的信息:

getAppliedImpulse()

但是 ammo.js 中没有这样的功能。我用文字搜索了代码,但它不存在。也许 API 更新了,或者阅读力的方法完全不同?

编辑:

这是我定制的弹药,它启用了 getAppliedImpulse() 和许多基本功能。 https://github.com/DVLP/ammo.js/tree/master/builds

【问题讨论】:

  • 我不知道 ammo.js,但我知道物理; forceimpulse 是不同的东西。

标签: javascript physics emscripten bullet ammo.js


【解决方案1】:

ammo.idl添加绑定描述,并重建ammo.js。

interface btManifoldPoint {
    ...
    [Const] double getAppliedImpulse();
}

【讨论】:

  • 谢谢这是我想出的正确答案。不幸的是,我无法在 Windows 上构建 ammo.js,这是一个已知问题。此外,我不会像其他前端/JavaScript 开发人员那样切换到 Mac。也许我会得到一个备用的只是为了制造弹药哈哈
  • 这是我的弹药叉(内置),如果有人有同样的需求,则启用此选项github.com/DVLP/ammo.js/tree/master/builds
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-24
  • 1970-01-01
  • 1970-01-01
  • 2012-10-11
  • 2016-05-14
  • 2018-01-28
  • 1970-01-01
相关资源
最近更新 更多