我尝试使用 b2DebugDraw 并且无法对其进行初始化,因为我从 getContext 函数返回了一个空值。我知道这不是 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