当前位置:嗨网首页>书籍在线阅读

34-b2debugDraw渲染与Canvas渲染的对比

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

5.6.9 b2debugDraw渲染与Canvas渲染的对比

Box2D的b2debugDraw功能是一种测试物理世界的方法,可以在浏览器中查看其工作情况。它并不是程序的物理表现形式。通过使用debugDraw呈现创建的物体就能够以动态的方式查看它们。在示例CH5EX22.html中,展示了如何将Box2D应用到画布上。现在来看看创建的物理模型。

下面的代码可以称得上是b2debugDraw运行的标准范例。其中,SetSprite()函数将一个画布的环境作为参数。这意味着,画布将完全被b2debugDraw的输出所控制。这就是为什么这种方法仅用于测试的原因。SetScaleFactor()函数需要制定一个值(30),用于从像素转换为MTS单位。SetFillAlpha()函数用于设置对象被显示时的线条的透明度。类似的,SetLineThickness()函数用于设置线条的粗细。SetFlags()函数需要指定一个二进制标志位的显示参数:e_shapeBit表示绘制对象,e_jointBit表示绘制关节(由于本例中没有关节,因此看不到)。

var debugDraw = new b2DebugDraw();
debugDraw.SetSprite (context2);
debugDraw.SetDrawScale(30);
debugDraw.SetFillAlpha(0.3);
debugDraw.SetLineThickness(1.0);
debugDraw.SetFlags(b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit);
world.SetDebugDraw(debugDraw);