2015-08-13 14 views
0

因此,我設法在ammo.js中處理碰撞檢測,就像他們在Physijs中一樣。下面是其中工程子彈物理(在asm.js中的ammo.js)如何獲得碰撞衝擊力

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

+0

我不知道ammo.js,但我知道物理; **力**和**衝動**是不同的事情。 – Beta

回答

1

將約束描述添加到ammo.idl,並重建ammo.js.

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

謝謝這是我想到的正確答案。不幸的是,我無法在Windows上構建ammo.js,這是一個已知問題。另外我不會像其他前端/ JavaScript開發人員那樣切換到Mac。也許我會得到一個備用彈藥,只是爲了建立彈藥大聲笑 – Pawel

+0

這裏是我的彈藥(建)與這個選項啓用如果任何人有相同的需求的叉子https://github.com/DVLP/ammo.js/tree/master/建立 – Pawel