0

我正在用 Java 脚本创建一个 Box2d 世界,我没有在其中添加任何对象。我将重力设置为零。当我尝试在画布内绘制 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);
    }
    }
}
4

1 回答 1

0

我发现即使我没有添加任何对象也绘制一个矩形的原因是我将高度和宽度硬编码为 125。如果我更改代码以便从 box2d 世界动态获取高度和宽度,则没有创建矩形,因为世界上不存在任何对象。

于 2012-10-19T07:09:39.530 回答