Improves physics debug drawing

This commit is contained in:
Viktor Lidholt 2015-10-27 13:38:52 -07:00
parent 96689dec7f
commit fde92a69a5
2 changed files with 15 additions and 1 deletions

View File

@ -47,6 +47,10 @@ class PhysicsWorld extends Node {
List<PhysicsBody> _bodiesScheduledForUpdate = <PhysicsBody>[];
bool drawDebug = false;
Matrix4 _debugDrawTransform ;
_PhysicsDebugDraw _debugDraw;
double b2WorldToNodeConversionFactor = 10.0;
@ -228,8 +232,10 @@ class PhysicsWorld extends Node {
}
void paint(PaintingCanvas canvas) {
if (drawDebug) {
_debugDrawTransform = new Matrix4.fromFloat64List(canvas.getTotalMatrix());
}
super.paint(canvas);
paintDebug(canvas);
}
void paintDebug(PaintingCanvas canvas) {

View File

@ -347,6 +347,14 @@ class SpriteBox extends RenderBox {
Matrix4 totalMatrix = new Matrix4.fromFloat64List(canvas.getTotalMatrix());
_rootNode._visit(canvas, totalMatrix);
// Draw physics debug
for (PhysicsWorld world in _physicsNodes) {
if (world.drawDebug) {
canvas.setMatrix(world._debugDrawTransform.storage);
world.paintDebug(canvas);
}
}
canvas.restore();
}