即使在Box2d World中没有添加任何对象,也会绘制矩形

时间:2012-10-15 09:41:44

标签: javascript canvas box2d

我正在用Java脚本创建一个Box2d World,我不会在其中添加任何对象。我将引力设置为零。当我尝试在画布中绘制box2d对象时,如果存在,我会找到一个以0,0绘制的矩形。但是,当我使用DebugDraw()时,没有按预期显示对象。有人可以解释为什么要绘制额外的矩形?代码如下:

canvas=document.getElementById("cnv");
context=canvas.getContext("2d");
x=0;
y=0;
scale=100; 

gravity=new b2Vec2(0,0);
world=new b2World(gravity,false);
requestAnimFrame(main);
function main()
{
    requestAnimFrame(main);
    begin();
}

function begin()
{
    world.Step(1/60,10,10);
    drawObjects();
    world.ClearForces();
}



function drawObjects()
{
canvas.width=canvas.width;
for (currentBody = world.GetBodyList(); currentBody; currentBody =currentBody.m_next)
     {
    position = currentBody.GetPosition();
    if (currentBody.GetType() == b2Body.b2_staticBody) 
    {
        context.fillStyle="red";
        alert(position.x+" "+position.y);
        context.fillRect(position.x*scale,position.y*scale,125,125);
    }
    }
}

1 个答案:

答案 0 :(得分:0)

我发现即使我没有添加任何对象,绘制矩形的原因是我将高度和宽度编码为125.如果我更改了代码,使得高度和宽度是从box2d动态获取的世界上,没有创建矩形,因为世界上没有对象。