0

Box2d WorldをJavaスクリプトで作成していますが、オブジェクトを追加していません。重力をゼロに設定しています。キャンバス内に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 に答える