Физика пули (ammo.js в asm.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 = 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
1 ответ
Решение
Добавить описание привязки к ammo.idl
и восстановите ammo.js.
interface btManifoldPoint {
...
[Const] double getAppliedImpulse();
}