refactor: different sized bumpers

pull/150/head
Allison Ryan 4 years ago
parent 5a3b668980
commit 7edd1ed3e3

@ -11,46 +11,58 @@ import 'package:pinball_components/pinball_components.dart';
class SparkyBumper extends BodyComponent with InitialPosition { class SparkyBumper extends BodyComponent with InitialPosition {
/// {@macro sparky_bumper} /// {@macro sparky_bumper}
SparkyBumper._({ SparkyBumper._({
required double majorRadius,
required double minorRadius,
required String activeAssetPath, required String activeAssetPath,
required String inactiveAssetPath, required String inactiveAssetPath,
required SpriteComponent spriteComponent, required SpriteComponent spriteComponent,
}) : _activeAssetPath = activeAssetPath, }) : _majorRadius = majorRadius,
_minorRadius = minorRadius,
_activeAssetPath = activeAssetPath,
_inactiveAssetPath = inactiveAssetPath, _inactiveAssetPath = inactiveAssetPath,
_spriteComponent = spriteComponent; _spriteComponent = spriteComponent;
/// {@macro sparky_bumper} /// {@macro sparky_bumper}
SparkyBumper.a() SparkyBumper.a()
: this._( : this._(
majorRadius: 2.9,
minorRadius: 2.1,
activeAssetPath: Assets.images.sparkyBumper.a.active.keyName, activeAssetPath: Assets.images.sparkyBumper.a.active.keyName,
inactiveAssetPath: Assets.images.sparkyBumper.a.inactive.keyName, inactiveAssetPath: Assets.images.sparkyBumper.a.inactive.keyName,
spriteComponent: SpriteComponent( spriteComponent: SpriteComponent(
anchor: Anchor.center, anchor: Anchor.center,
position: Vector2(0, -0.2), position: Vector2(0, -0.25),
), ),
); );
/// {@macro sparky_bumper} /// {@macro sparky_bumper}
SparkyBumper.b() SparkyBumper.b()
: this._( : this._(
majorRadius: 2.85,
minorRadius: 2,
activeAssetPath: Assets.images.sparkyBumper.b.active.keyName, activeAssetPath: Assets.images.sparkyBumper.b.active.keyName,
inactiveAssetPath: Assets.images.sparkyBumper.b.inactive.keyName, inactiveAssetPath: Assets.images.sparkyBumper.b.inactive.keyName,
spriteComponent: SpriteComponent( spriteComponent: SpriteComponent(
anchor: Anchor.center, anchor: Anchor.center,
position: Vector2(0.1, -0.2), position: Vector2(0, -0.35),
), ),
); );
/// {@macro sparky_bumper} /// {@macro sparky_bumper}
SparkyBumper.c() SparkyBumper.c()
: this._( : this._(
majorRadius: 3,
minorRadius: 2.2,
activeAssetPath: Assets.images.sparkyBumper.c.active.keyName, activeAssetPath: Assets.images.sparkyBumper.c.active.keyName,
inactiveAssetPath: Assets.images.sparkyBumper.c.inactive.keyName, inactiveAssetPath: Assets.images.sparkyBumper.c.inactive.keyName,
spriteComponent: SpriteComponent( spriteComponent: SpriteComponent(
anchor: Anchor.center, anchor: Anchor.center,
position: Vector2(0.2, -0.5), position: Vector2(0, -0.4),
), ),
); );
final double _majorRadius;
final double _minorRadius;
final String _activeAssetPath; final String _activeAssetPath;
late final Sprite _activeSprite; late final Sprite _activeSprite;
final String _inactiveAssetPath; final String _inactiveAssetPath;
@ -75,9 +87,9 @@ class SparkyBumper extends BodyComponent with InitialPosition {
final shape = EllipseShape( final shape = EllipseShape(
center: Vector2.zero(), center: Vector2.zero(),
majorRadius: 2.85, majorRadius: _majorRadius,
minorRadius: 2.15, minorRadius: _minorRadius,
)..rotate(math.pi / 2); )..rotate(math.pi / 1.9);
final fixtureDef = FixtureDef(shape) final fixtureDef = FixtureDef(shape)
..friction = 0 ..friction = 0
..restitution = 4; ..restitution = 4;

Loading…
Cancel
Save