我一直试图掌握来自XNA / Farseer背景的HTML5游戏写作。
似乎box2dweb缺少ApplyLinearImpuse()和ApplyAngularImpulse()方法。
我甚至查看了源here,似乎就是这种情况。
有谁知道为什么不提供这些方法?
答案 0 :(得分:3)
刚才我需要同样的东西。幸运的是,实现或ApplyAngularImpulse
非常简单。您可以将以下内容添加到代码中以将其修补到box2d:
<强> Box2Dweb 强>
b2Body.prototype.ApplyAngularImpulse = function(impulse) {
if (this.IsAwake() == false) {
this.SetAwake(true);
}
this.m_angularVelocity += this.m_invI * impulse;
};
<强> Box2Djs 强>
b2Body.prototype.ApplyAngularImpulse = function(impulse) {
if (this.IsSleeping() == false)
{
this.m_angularVelocity += this.m_invI * impulse;
}
};
一般情况下,要获得C ++版本中尚未移植到Flash或JavaScript版本的功能,您可以查看the original source,并按上述方式将它们移植到自己身上。即使您不熟悉C ++,代码也非常平易近人。