我一直在努力掌握来自 XNA / Farseer 背景的 HTML5 游戏写作。
似乎 box2dweb 缺少 ApplyLinearImpuse() 和 ApplyAngularImpulse() 方法。
我什至在这里查看了源代码,似乎是这样。
有谁知道为什么不提供这些方法?
刚才我需要同样的东西。好在实现还是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 版本的功能,您可以查看原始源代码,然后如上所述自行移植它们。即使您不熟悉 C++,代码也相当容易上手。