Canvas 仅在画布上绘制一个box2d对象
我正在尝试使用Box2dWeb在画布中绘制几个球对象,而不使用debugDraw()。我正在使用以下代码绘制圆:Canvas 仅在画布上绘制一个box2d对象,canvas,box2d,Canvas,Box2d,我正在尝试使用Box2dWeb在画布中绘制几个球对象,而不使用debugDraw()。我正在使用以下代码绘制圆: function drawObjects() { node = world.GetBodyList(); while (node) { var currentBody = node; node = node.GetNext(); position = currentBody.GetPosit
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时,我能够看到我添加的两个圆形对象。但当尝试使用画布方法时,仅显示一个圆形对象。。有没有关于我错在哪里的指示?此外,我觉得我在理解我使用的box2d方法时可能犯了一些根本性的错误。您每次都在用这一行清除画布:
canvas.width=canvas.width代码>
在顶部,在while循环之外执行此操作
(更改画布宽度,即使更改为相同的值,也会清除画布。这通常也是清除画布的最快方法,这就是为什么您会看到它被大量使用的原因)您每次都使用以下行清除画布:
canvas.width=canvas.width代码>
在顶部,在while循环之外执行此操作
(更改画布宽度,即使更改为相同的值,也会清除画布。这通常也是清除画布的最快方法,这就是为什么您会看到它被大量使用的原因)事实上,clearRect
在今天的大多数浏览器中速度更快,也是预期的方法@bennedich啊,谢谢你。我上次测试它已经有一段时间了。事实上,clearRect
在今天的大多数浏览器中速度更快,也是预期的方法@bennedich啊,谢谢你。我上次测试已经有一段时间了。