diff --git a/packages/pinball_components/lib/src/components/flipper.dart b/packages/pinball_components/lib/src/components/flipper.dart index 49bd6d6f..64a82269 100644 --- a/packages/pinball_components/lib/src/components/flipper.dart +++ b/packages/pinball_components/lib/src/components/flipper.dart @@ -159,8 +159,9 @@ class _FlipperAnchor extends JointAnchor { required Flipper flipper, }) { initialPosition = Vector2( - flipper.body.position.x + ((Flipper.size.x * flipper.side.direction) / 2), - flipper.body.position.y, + (Flipper.size.x * flipper.side.direction) / 2 - + (1.65 * flipper.side.direction), + 0.15, ); } } @@ -178,7 +179,7 @@ class _FlipperAnchorRevoluteJointDef extends RevoluteJointDef { initialize( flipper.body, anchor.body, - anchor.body.position, + flipper.body.position + anchor.body.position, ); } diff --git a/packages/pinball_components/lib/src/components/joint_anchor.dart b/packages/pinball_components/lib/src/components/joint_anchor.dart index 98b80ece..7ca75ba0 100644 --- a/packages/pinball_components/lib/src/components/joint_anchor.dart +++ b/packages/pinball_components/lib/src/components/joint_anchor.dart @@ -12,7 +12,7 @@ import 'package:pinball_components/pinball_components.dart'; /// initialize( /// dynamicBody.body, /// anchor.body, -/// anchor.body.position, +/// dynabmicBody.body + anchor.body.position, /// ); /// ``` /// {@endtemplate} diff --git a/packages/pinball_components/sandbox/lib/common/trace.dart b/packages/pinball_components/sandbox/lib/common/trace.dart index d64a5c6c..2018b942 100644 --- a/packages/pinball_components/sandbox/lib/common/trace.dart +++ b/packages/pinball_components/sandbox/lib/common/trace.dart @@ -3,6 +3,7 @@ import 'dart:async'; import 'package:flame/components.dart'; import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:flutter/material.dart'; +import 'package:pinball_components/pinball_components.dart'; extension BodyTrace on BodyComponent { void trace({Color color = const Color(0xFFFF0000)}) { @@ -13,6 +14,12 @@ extension BodyTrace on BodyComponent { mounted.whenComplete(() { final sprite = children.whereType().first; sprite.paint.color = sprite.paint.color.withOpacity(0.5); + + descendants().whereType().forEach((anchor) { + final fixtureDef = FixtureDef(CircleShape()..radius = 0.5); + anchor.body.createFixture(fixtureDef); + anchor.renderBody = true; + }); }), ); } diff --git a/packages/pinball_components/sandbox/lib/stories/flipper/basic_flipper_game.dart b/packages/pinball_components/sandbox/lib/stories/flipper/basic_flipper_game.dart index f907b625..1a1ab1ee 100644 --- a/packages/pinball_components/sandbox/lib/stories/flipper/basic_flipper_game.dart +++ b/packages/pinball_components/sandbox/lib/stories/flipper/basic_flipper_game.dart @@ -1,4 +1,5 @@ import 'package:flame/input.dart'; +import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:pinball_components/pinball_components.dart';