Merge branch 'main' into chore/simplify-tracing

pull/157/head
Allison Ryan 4 years ago
commit 0044e4ed81

@ -129,8 +129,8 @@ class PlungerAnchor extends JointAnchor {
required Plunger plunger,
}) {
initialPosition = Vector2(
plunger.body.position.x,
plunger.body.position.y - plunger.compressionDistance,
0,
-plunger.compressionDistance,
);
}
@ -161,7 +161,7 @@ class PlungerAnchorPrismaticJointDef extends PrismaticJointDef {
initialize(
plunger.body,
anchor.body,
anchor.body.position,
plunger.body.position + anchor.body.position,
Vector2(18.6, BoardDimensions.bounds.height),
);
enableLimit = true;

@ -23,7 +23,7 @@ class ChromeDino extends BodyComponent with InitialPosition {
/// Anchors the [ChromeDino] to the [RevoluteJoint] that controls its arc
/// motion.
Future<_ChromeDinoJoint> _anchorToJoint() async {
final anchor = _ChromeDinoAnchor(chromeDino: this);
final anchor = _ChromeDinoAnchor();
await add(anchor);
final jointDef = _ChromeDinoAnchorRevoluteJointDef(
@ -110,12 +110,10 @@ class ChromeDino extends BodyComponent with InitialPosition {
/// {@endtemplate}
class _ChromeDinoAnchor extends JointAnchor {
/// {@macro flipper_anchor}
_ChromeDinoAnchor({
required ChromeDino chromeDino,
}) {
_ChromeDinoAnchor() {
initialPosition = Vector2(
chromeDino.body.position.x + ChromeDino.size.x / 2,
chromeDino.body.position.y,
ChromeDino.size.x / 2,
0,
);
}
}
@ -132,7 +130,7 @@ class _ChromeDinoAnchorRevoluteJointDef extends RevoluteJointDef {
initialize(
chromeDino.body,
anchor.body,
anchor.body.position,
chromeDino.body.position + anchor.body.position,
);
enableLimit = true;
// TODO(alestiago): Apply design angle value.

@ -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,
);
}

@ -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}

@ -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<SpriteComponent>().first;
sprite.paint.color = sprite.paint.color.withOpacity(0.5);
descendants().whereType<JointAnchor>().forEach((anchor) {
final fixtureDef = FixtureDef(CircleShape()..radius = 0.5);
anchor.body.createFixture(fixtureDef);
anchor.renderBody = true;
});
}),
);
}

@ -3,25 +3,23 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:pinball_components/pinball_components.dart';
import 'package:sandbox/common/common.dart';
import 'package:sandbox/stories/ball/basic_ball_game.dart';
class FlipperGame extends BasicBallGame with KeyboardEvents, Traceable {
FlipperGame({
required bool trace,
}) : _trace = trace,
super(color: const Color(0xFFFF0000));
super(color: Colors.blue);
static const info = '''
Shows how a Flipper works.
Shows how Flippers are rendered.
- Activate the "trace" parameter to overlay the body.
- Tap anywhere on the screen to spawn a ball into the game.
''';
final bool _trace;
@override
bool get trace => _trace;
- Press left arrow key or "A" to move the left flipper.
- Press right arrow key or "D" to move the right flipper.
''';
static const _leftFlipperKeys = [
LogicalKeyboardKey.arrowLeft,
@ -33,6 +31,11 @@ class FlipperGame extends BasicBallGame with KeyboardEvents, Traceable {
LogicalKeyboardKey.keyD,
];
final bool _trace;
@override
bool get trace => _trace;
late Flipper leftFlipper;
late Flipper rightFlipper;

@ -11,7 +11,7 @@ void addFlipperStories(Dashbook dashbook) {
trace: context.boolProperty('Trace', true),
),
),
codeLink: buildSourceLink('flipper_game/basic.dart'),
codeLink: buildSourceLink('flipper/basic.dart'),
info: FlipperGame.info,
);
}

Loading…
Cancel
Save