Javascript 子弹物理(asm.js中的ammo.js)如何获得碰撞冲击力
所以我设法在ammo.js中实现了碰撞检测,就像在Physijs中一样。下面是有效的代码Javascript 子弹物理(asm.js中的ammo.js)如何获得碰撞冲击力,javascript,physics,emscripten,bullet,ammo.js,Javascript,Physics,Emscripten,Bullet,Ammo.js,所以我设法在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 = mani
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
}
}
但是ammo.js中没有这样的函数。我搜索了代码,但它不在那里。也许API更新了,或者读取力的方法完全不同
编辑:
这是我使用getAppliedImpulse()和许多基本函数定制的弹药。
将绑定描述添加到
ammo.idl
,然后重新生成ammo.js
interface btManifoldPoint {
...
[Const] double getAppliedImpulse();
}
我不知道ammo.js,但我知道物理学;力量和冲动是两码事。谢谢,这也是我找到的正确答案。不幸的是,我无法在Windows上构建ammo.js,这是一个已知的问题。另外,我不会像其他前端/JavaScript开发人员那样切换到Mac。也许我会得到一个备用的来制造弹药。这是我的弹药叉(制造),如果有人有同样的需求,可以启用这个选项
interface btManifoldPoint {
...
[Const] double getAppliedImpulse();
}