Я создал небольшую игру с Box2d для 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();
}
Интересно, что если я установлю масштаб отладочной отрисовки на что-то другое, чем мой мировой масштаб, он замедлится до 19 кадров в секунду. Так что что-то происходит, когда он рисует коробки под моими спрайтами, заставляя его работать быстрее ..
Приветствия
Guy