refactor: modified unlock method due to invalid cast

pull/15/head
alestiago 4 years ago
parent ab96a9ead8
commit 424776f2a4

@ -193,12 +193,9 @@ class FlipperAnchorRevoluteJointDef extends RevoluteJointDef {
/// its resting position. /// its resting position.
// TODO(alestiago): consider refactor once the issue is solved: // TODO(alestiago): consider refactor once the issue is solved:
// https://github.com/flame-engine/forge2d/issues/36 // https://github.com/flame-engine/forge2d/issues/36
static void unlock(RevoluteJoint joint) { static void unlock(RevoluteJoint joint, BoardSide side) {
assert(joint.bodyA is Flipper && joint.bodyB is Anchor, 'Invalid joint.');
final flipper = joint.bodyA as Flipper;
late final double upperLimit, lowerLimit; late final double upperLimit, lowerLimit;
switch (flipper.side) { switch (side) {
case BoardSide.left: case BoardSide.left:
lowerLimit = joint.lowerLimit * -1; lowerLimit = joint.lowerLimit * -1;
upperLimit = joint.upperLimit; upperLimit = joint.upperLimit;

@ -81,8 +81,14 @@ class PinballGame extends Forge2DGame with FlameBloc, KeyboardEvents {
await _leftFlipper.hasMounted.future; await _leftFlipper.hasMounted.future;
await _rightFlipper.hasMounted.future; await _rightFlipper.hasMounted.future;
FlipperAnchorRevoluteJointDef.unlock(_leftFlipperRevoluteJoint); FlipperAnchorRevoluteJointDef.unlock(
FlipperAnchorRevoluteJointDef.unlock(_rightFlipperRevoluteJoint); _leftFlipperRevoluteJoint,
BoardSide.left,
);
FlipperAnchorRevoluteJointDef.unlock(
_rightFlipperRevoluteJoint,
BoardSide.right,
);
} }
@override @override

Loading…
Cancel
Save