b2DebugDraw を使用しようとしましたが、getContext 関数から null が返されたため、初期化できませんでした。これが cocos2d 要素ではないことはわかっていますが、他のコンテキストでは正常に機能します。
「cocos new -l js」で新しい空の hello world プロジェクトを作成し、HelloWorldLayer の ctor 関数の最後に次のコードを配置しました。
var b2Vec2 = Box2D.Common.Math.b2Vec2,
b2World = Box2D.Dynamics.b2World,
b2DebugDraw = Box2D.Dynamics.b2DebugDraw;
this.world = new b2World(new b2Vec2(0, -5), true);
var debugDraw = new b2DebugDraw();
var element = document.getElementById("gameCanvas"),
context = element.getContext("2d"); // context is null so
debugDraw.SetSprite(context); // sprite is not set
debugDraw.SetDrawScale(20.0);
debugDraw.SetFillAlpha(0.5);
debugDraw.SetLineThickness(1.0); // and crashes in SetLineThickness
なにが問題ですか?
エンジンのバージョンは 3.0a2