1

我正在尝试使用 Box2dWeb 在画布中绘制几个球对象,而不使用 debugDraw()。我正在使用以下代码绘制圆圈:

function drawObjects()
{
     node = world.GetBodyList();
     while (node) {
            var currentBody = node;
            node = node.GetNext();
             position = currentBody.GetPosition();
            if (currentBody.GetType() == b2Body.b2_dynamicBody) 
            {
                canvas.width=canvas.width;
                context.arc(position.x*30,position.y*30,shape.GetRadius()*20,0,7);
                context.stroke();
                context.fill();
            }
            }
}

当我使用 debugDraw 时,我能够看到我正在添加的两个 Circle 对象。但是当尝试使用画布方法时,只显示了一个圆形对象..关于我哪里出错的任何指针?此外,我觉得我对我正在使用的 box2d 方法的理解可能做错了什么。

4

1 回答 1

1

您每次都使用此行清除画布:

canvas.width=canvas.width;

在 while 循环之外的顶部执行此操作。

(改变画布宽度,即使是相同的值,也会清除画布。这通常也是最快的清除方法,这就是为什么你会看到它使用了很多)

于 2012-10-14T09:01:50.820 回答