我正在尝试使用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对象。但是当尝试使用canvas方法时,只显示了一个圆形对象..任何关于我出错的指针?此外,我觉得在理解我正在使用的box2d方法时,我可能正在做一些根本错误的事情。
答案 0 :(得分:1)
您每次使用此行清除画布:
canvas.width=canvas.width;
在while循环之外的顶部执行此操作。
(更改画布宽度,即使是相同的值,也会清除画布。它通常也是清除它的最快方法,这就是为什么你看到它使用了很多)