你将如何去对物体施力?

澄清 - ammo.js是使用mscripten的子弹物理的端口

我有一个角色(本质上是一个块),需要用武力推动。 我试过(我认为)所有的力量方法,但我仍然无法移动该块。

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也一样。

在我的代码中,我通常会创建一组临时btVector3s,并在整个文件中使用它们,以减少分配和垃圾收集的开销。

var tbv30 = new Ammo.btVector3();

function doSomeStuff(body){
    tbv30.setValue(10,0,0);
    body.setLinearVelocity(tbv30);
}

祝你好运:D

链接地址: http://www.djcxy.com/p/66169.html

上一篇: How would you go about applying force to an object?

下一篇: phase order and other general information