How would you go about applying force to an object?
To clarify - ammo.js
is a port of Bullet Physics using mscripten
I have a character (essentially a block) that needs to be pushed with force. I have tried (I think) all of the methods for forces but I still cannot move the block.
setVelocity(1,0,0)
does not even move the block - it just stops gravity from acting on it! applyImpulse([0,0,200000],[0,0,0])
does absolutely nothing.
applyForce([0,0,200000],[0,0,0])
does absolutely nothing.
Due to the fact that ammo.js is an emscripten port, you have to use its native datatypes to talk to it...
So for setting velocity you'd need to body.setLinearVelocity(new Ammo.btVector3(1,0,0));
Same goes for applyForce and applyImpulse.
In my code, I usually make a set of temporary btVector3s, and use them throughout the file, in order to reduce the overhead of allocation and garbage collection..
var tbv30 = new Ammo.btVector3();
function doSomeStuff(body){
tbv30.setValue(10,0,0);
body.setLinearVelocity(tbv30);
}
good luck :D
链接地址: http://www.djcxy.com/p/66170.html上一篇: 圆轨道公式不适用于统一3D
下一篇: 你将如何去对物体施力?