Skip to content

Commit

Permalink
Merge pull request flutter#1833 from vlidholt/master
Browse files Browse the repository at this point in the history
Improves physics debug drawing
  • Loading branch information
vlidholt committed Oct 27, 2015
2 parents ce83055 + 6358ddf commit 400ba17
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 2 deletions.
1 change: 1 addition & 0 deletions examples/game/test_physics.dart
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ class TestBed extends NodeWithSize {

TestBed() : super(new Size(1024.0, 1024.0)) {
_world = new PhysicsWorld(new Offset(0.0, 100.0));
_world.drawDebug = true;
_group = new PhysicsGroup();
_group2 = new PhysicsGroup();
_group2.position = new Point(50.0, 50.0);
Expand Down
2 changes: 1 addition & 1 deletion skysprites/lib/src/physics_collision_groups.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class _PhysicsCollisionGroups {
List<Object> getKeysForBitmask(int bitmask) {
List<Object> keys = [];
keyLookup.forEach((Object key, int value) {
if (value & bitmask != null) {
if (value & bitmask != 0) {
keys.add(key);
}
});
Expand Down
8 changes: 7 additions & 1 deletion skysprites/lib/src/physics_world.dart
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ class PhysicsWorld extends Node {

List<PhysicsBody> _bodiesScheduledForUpdate = <PhysicsBody>[];

bool drawDebug = false;

Matrix4 _debugDrawTransform ;

_PhysicsDebugDraw _debugDraw;

double b2WorldToNodeConversionFactor = 10.0;
Expand Down Expand Up @@ -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) {
Expand Down
8 changes: 8 additions & 0 deletions skysprites/lib/src/sprite_box.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}

Expand Down

0 comments on commit 400ba17

Please sign in to comment.