2012-10-15 37 views
0

我正在Java腳本中創建Box2d世界,但我不在其中添加任何對象。我將重力設置爲零。當我嘗試在畫布中繪製box2d對象時,如果存在,我找到一個以0,0繪製的矩形。但是,當我使用DebugDraw()時,沒有對象按預期方式顯示。有人可以解釋爲什麼額外的矩形被繪製?該代碼是下面:即使未在Box2d中添加對象,也會繪製矩形

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); 
    } 
    } 
} 

回答

0

我發現,原因的繪製矩形,即使我還沒有添加任何目的,我硬編碼的高度和寬度爲125。如果我改變了代碼,使得高度和寬度是從box2d世界中動態獲取的,因爲沒有對象存在於世界中,所以不創建矩形。