feat: made InitialPosition position the body

pull/50/head
alestiago 4 years ago
parent ffbf47d840
commit daede67b67

@ -40,7 +40,6 @@ class Ball extends BodyComponent<PinballGame> with InitialPosition {
final bodyDef = BodyDef() final bodyDef = BodyDef()
..userData = this ..userData = this
..position = initialPosition
..type = BodyType.dynamic; ..type = BodyType.dynamic;
return world.createBody(bodyDef)..createFixture(fixtureDef); return world.createBody(bodyDef)..createFixture(fixtureDef);

@ -58,7 +58,6 @@ class Baseboard extends BodyComponent with InitialPosition {
const angle = math.pi / 7; const angle = math.pi / 7;
final bodyDef = BodyDef() final bodyDef = BodyDef()
..position = initialPosition
..type = BodyType.static ..type = BodyType.static
..angle = _side.isLeft ? -angle : angle; ..angle = _side.isLeft ? -angle : angle;

@ -130,7 +130,6 @@ class BonusLetter extends BodyComponent<PinballGame>
final bodyDef = BodyDef() final bodyDef = BodyDef()
..userData = this ..userData = this
..position = initialPosition
..type = BodyType.static; ..type = BodyType.static;
return world.createBody(bodyDef)..createFixture(fixtureDef); return world.createBody(bodyDef)..createFixture(fixtureDef);

@ -190,9 +190,7 @@ class Flipper extends BodyComponent with KeyboardHandler, InitialPosition {
Body createBody() { Body createBody() {
final bodyDef = BodyDef() final bodyDef = BodyDef()
..gravityScale = 0 ..gravityScale = 0
..type = BodyType.dynamic ..type = BodyType.dynamic;
..position = initialPosition;
final body = world.createBody(bodyDef); final body = world.createBody(bodyDef);
_createFixtureDefs().forEach(body.createFixture); _createFixtureDefs().forEach(body.createFixture);

@ -9,9 +9,6 @@ mixin InitialPosition<T extends Forge2DGame> on BodyComponent<T> {
@override @override
Future<void> onLoad() async { Future<void> onLoad() async {
await super.onLoad(); await super.onLoad();
assert( body.position.setFrom(initialPosition);
body.position == initialPosition,
'Body position is not equal to initial position.',
);
} }
} }

@ -22,8 +22,6 @@ class JointAnchor extends BodyComponent with InitialPosition {
@override @override
Body createBody() { Body createBody() {
final bodyDef = BodyDef()..position = initialPosition; return world.createBody(BodyDef());
return world.createBody(bodyDef);
} }
} }

@ -148,10 +148,7 @@ class Pathway extends BodyComponent with InitialPosition {
@override @override
Body createBody() { Body createBody() {
final bodyDef = BodyDef() final bodyDef = BodyDef()..type = BodyType.static;
..type = BodyType.static
..position = initialPosition;
final body = world.createBody(bodyDef); final body = world.createBody(bodyDef);
for (final path in _paths) { for (final path in _paths) {
final chain = ChainShape() final chain = ChainShape()

@ -26,7 +26,6 @@ class Plunger extends BodyComponent with KeyboardHandler, InitialPosition {
final bodyDef = BodyDef() final bodyDef = BodyDef()
..userData = this ..userData = this
..position = initialPosition
..type = BodyType.dynamic ..type = BodyType.dynamic
..gravityScale = 0; ..gravityScale = 0;

@ -27,9 +27,7 @@ class RoundBumper extends BodyComponent with ScorePoints, InitialPosition {
final fixtureDef = FixtureDef(shape)..restitution = 1; final fixtureDef = FixtureDef(shape)..restitution = 1;
final bodyDef = BodyDef() final bodyDef = BodyDef()..type = BodyType.static;
..position = initialPosition
..type = BodyType.static;
return world.createBody(bodyDef)..createFixture(fixtureDef); return world.createBody(bodyDef)..createFixture(fixtureDef);
} }

@ -83,8 +83,7 @@ class SlingShot extends BodyComponent with InitialPosition {
@override @override
Body createBody() { Body createBody() {
final bodyDef = BodyDef()..position = initialPosition; final body = world.createBody(BodyDef());
final body = world.createBody(bodyDef);
_createFixtureDefs().forEach(body.createFixture); _createFixtureDefs().forEach(body.createFixture);
return body; return body;

@ -12,13 +12,6 @@ class TestBodyComponent extends BodyComponent with InitialPosition {
} }
} }
class TestPositionedBodyComponent extends BodyComponent with InitialPosition {
@override
Body createBody() {
return world.createBody(BodyDef()..position = initialPosition);
}
}
void main() { void main() {
final flameTester = FlameTester(Forge2DGame.new); final flameTester = FlameTester(Forge2DGame.new);
group('InitialPosition', () { group('InitialPosition', () {
@ -35,32 +28,11 @@ void main() {
); );
}); });
flameTester.test( flameTester.test('positions correctly', (game) async {
'returns normally ' final position = Vector2.all(10);
'when the body sets the position to initial position', final component = TestBodyComponent()..initialPosition = position;
(game) async {
final component = TestPositionedBodyComponent()
..initialPosition = Vector2.zero();
await expectLater(
() async => game.ensureAdd(component),
returnsNormally,
);
},
);
flameTester.test(
'throws AssertionError '
'when not setting initialPosition to body',
(game) async {
final component = TestBodyComponent()..initialPosition = Vector2.zero();
await game.ensureAdd(component); await game.ensureAdd(component);
expect(component.body.position, equals(position));
await expectLater( });
() async => game.ensureAdd(component),
throwsAssertionError,
);
},
);
}); });
} }

Loading…
Cancel
Save