refactor: simplified logic

pull/72/head
alestiago 4 years ago
parent a6d58ef3ab
commit 1c7146de97

@ -106,10 +106,10 @@ class Flipper extends BodyComponent with KeyboardHandler, InitialPosition {
/// Anchors the [Flipper] to the [RevoluteJoint] that controls its arc motion. /// Anchors the [Flipper] to the [RevoluteJoint] that controls its arc motion.
Future<void> _anchorToJoint() async { Future<void> _anchorToJoint() async {
final anchor = FlipperAnchor(flipper: this); final anchor = _FlipperAnchor(flipper: this);
await add(anchor); await add(anchor);
final jointDef = FlipperAnchorRevoluteJointDef( final jointDef = _FlipperAnchorRevoluteJointDef(
flipper: this, flipper: this,
anchor: anchor, anchor: anchor,
); );
@ -208,7 +208,7 @@ class Flipper extends BodyComponent with KeyboardHandler, InitialPosition {
} }
class _FlipperJoint extends RevoluteJoint { class _FlipperJoint extends RevoluteJoint {
_FlipperJoint(FlipperAnchorRevoluteJointDef def) _FlipperJoint(_FlipperAnchorRevoluteJointDef def)
: side = def.side, : side = def.side,
super(def); super(def);
@ -234,13 +234,13 @@ class _FlipperJoint extends RevoluteJoint {
} }
/// {@template flipper_anchor_revolute_joint_def} /// {@template flipper_anchor_revolute_joint_def}
/// Hinges one end of [Flipper] to a [FlipperAnchor] to achieve an arc motion. /// Hinges one end of [Flipper] to a [_FlipperAnchor] to achieve an arc motion.
/// {@endtemplate} /// {@endtemplate}
class FlipperAnchorRevoluteJointDef extends RevoluteJointDef { class _FlipperAnchorRevoluteJointDef extends RevoluteJointDef {
/// {@macro flipper_anchor_revolute_joint_def} /// {@macro flipper_anchor_revolute_joint_def}
FlipperAnchorRevoluteJointDef({ _FlipperAnchorRevoluteJointDef({
required Flipper flipper, required Flipper flipper,
required FlipperAnchor anchor, required _FlipperAnchor anchor,
}) : side = flipper.side { }) : side = flipper.side {
initialize( initialize(
flipper.body, flipper.body,
@ -249,7 +249,7 @@ class FlipperAnchorRevoluteJointDef extends RevoluteJointDef {
); );
enableLimit = true; enableLimit = true;
final angle = (flipper.side.isLeft ? _sweepingAngle : -_sweepingAngle) / 2; final angle = (_sweepingAngle * -side.direction) / 2;
lowerAngle = upperAngle = angle; lowerAngle = upperAngle = angle;
} }
@ -264,15 +264,13 @@ class FlipperAnchorRevoluteJointDef extends RevoluteJointDef {
/// ///
/// The end of a [Flipper] depends on its [Flipper.side]. /// The end of a [Flipper] depends on its [Flipper.side].
/// {@endtemplate} /// {@endtemplate}
class FlipperAnchor extends JointAnchor { class _FlipperAnchor extends JointAnchor {
/// {@macro flipper_anchor} /// {@macro flipper_anchor}
FlipperAnchor({ _FlipperAnchor({
required Flipper flipper, required Flipper flipper,
}) { }) {
initialPosition = Vector2( initialPosition = Vector2(
flipper.side.isLeft flipper.body.position.x + ((Flipper.size.x * flipper.side.direction) / 2),
? flipper.body.position.x - Flipper.size.x / 2
: flipper.body.position.x + Flipper.size.x / 2,
flipper.body.position.y, flipper.body.position.y,
); );
} }

Loading…
Cancel
Save