我用 Box2d for AS3 创建了一个小游戏 - 我将精灵附加到舞台上,它们从底层的 Box2d 世界中获取位置。这些精灵大多是PNG。
当游戏运行时每次更新都会调用 DrawDebugData(),它运行良好且流畅。但是,当我对此发表评论时,它运行不稳定。在这两种情况下,我所有的精灵都被渲染了。因此,当它额外绘制调试数据时,它似乎运行得更快(即我的精灵在两种情况下都在屏幕上!)
这是怎么回事?绘制调试数据是否会触发某种“快速渲染”开关?如果是这样,开关是什么!?我在 Box2D 代码中看不到它。
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();
}
有趣的是,如果我将调试绘制比例设置为与我的世界比例不同的东西,它会减慢到 19fps。所以当它在我的精灵下绘制盒子时会发生一些事情,导致它运行得更快..
干杯,
盖伊