为了澄清- ammo.js是一个使用mscripten的弹物理端口
我有一个角色(本质上是块),需要用武力来推动。我已经尝试过(我认为)所有的力量方法,但我仍然不能移动障碍。
setVelocity(1,0,0)甚至不会移动地块--它只是阻止重力对它的作用!applyImpulse([0,0,200000],[0,0,0])绝对什么也不做。
applyForce([0,0,200000],[0,0,0])绝对什么都不做。
发布于 2014-12-19 02:18:09
由于ammo.js是一个emscripten端口,您必须使用它的本机数据类型来与它对话.
因此,要设置速度,您需要body.setLinearVelocity(新的Ammo.btVector3(1,0,0));
applyForce和applyImpulse也是如此。
在我的代码中,我通常制作一组临时btVector3s,并在整个文件中使用它们,以减少分配和垃圾收集的开销。
var tbv30 = new Ammo.btVector3();
function setBodyVelocity(body,x,y,z){
tbv30.setValue(x,y,z);
body.setLinearVelocity(tbv30);
}祝你好运:D
https://stackoverflow.com/questions/26573039
复制相似问题