要澄清-ammo.js
是使用mscripten的Bullet Physics的移植
我有一个角色(基本上是一个方块),需要用力推动。我已经尝试过(我认为)所有使用力的方法,但是我仍然无法移动障碍物。setVelocity(1,0,0)
甚至不移动块-只是阻止重力作用在块上!applyImpulse([0,0,200000],[0,0,0])
绝对不执行任何操作。applyForce([0,0,200000],[0,0,0])
绝对不执行任何操作。
最佳答案
由于ammo.js是一个emscripten端口,因此您必须使用其本机数据类型与之通信...
因此,要设置速度,您需要body.setLinearVelocity(new Ammo.btVector3(1,0,0));
applyForce和applyImpulse也一样。
在我的代码中,我通常制作一组临时的btVector3,并在整个文件中使用它们,以减少分配和垃圾回收的开销。
var tbv30 = new Ammo.btVector3();
function setBodyVelocity(body,x,y,z){
tbv30.setValue(x,y,z);
body.setLinearVelocity(tbv30);
}
祝你好运:D
关于javascript - BulletPhysics(ammo.js)-如何对物体施加力?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26573039/