Box2D in Flash runs quicker when drawing debug data than not

Posted by bowdengm on Stack Overflow See other posts from Stack Overflow or by bowdengm
Published on 2010-01-24T14:18:37Z Indexed on 2010/05/01 8:37 UTC
Read the original article Hit count: 221

Filed under:
|
|

I've created a small game with Box2d for AS3 - I have sprites attached to the stage that take their position from the underlying Box2d world. These sprites are mostly PNGs.

When the game runs with DrawDebugData() bening called every update, it runs nice and smoothly. However when I comment this out, it runs choppily. In both cases all my sprites are being rendered. So it seems that it's running faster when it's drawing the debug data additionaly (i.e. my sprites are on the screen in both cases!)

What's going on? Does drawing the debug data flick some sort of 'render quick' switch? If so, what's the switch!? I can't see it in the Box2D code.

function Update(e){
    m_world.Step(m_timeStep, m_velocityIterations, m_positionIterations);
    // draw debug?
    m_world.DrawDebugData();
    // with the above line in, I get 27fps, without it, I get 19fps.
    // that's the only change that's causing such a huge difference.
    doStuff();
}

Interestingly, If i set the debug draw scale to something different to my world scale, it slows down to 19fps. So there's something happening when it draws the boxes under my sprites causing it to run quicker..

Cheers,

Guy

© Stack Overflow or respective owner

Related posts about box2d

Related posts about actionscript-3