AS3 용 Box2d로 작은 게임을 만들었습니다 - 기본 Box2d 세계에서 자신의 위치를 차지하는 스테이지에 스프라이트를 연결했습니다. 이 스프라이트는 대부분 PNG입니다.플래시의 Box2D가 디버그 데이터를 드로잉 할 때 더 빠르게 실행됩니다.
게임이 모든 업데이트라는 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로 느려집니다. 그래서
건배,
가이
내가 찾은 유일한 해결책은 Sprite에 디버그 데이터를 그려서 알파를 0으로 설정하고 무시하는 것입니다. – Reuben