feat: added plunger zone and placed rocket over plunger

pull/180/head
RuiAlonso 4 years ago
parent 142da1567c
commit 57b4d67072

@ -7,6 +7,7 @@ export 'controlled_plunger.dart';
export 'controlled_sparky_computer.dart'; export 'controlled_sparky_computer.dart';
export 'flutter_forest.dart'; export 'flutter_forest.dart';
export 'game_flow_controller.dart'; export 'game_flow_controller.dart';
export 'plunger_zone.dart';
export 'score_effect_controller.dart'; export 'score_effect_controller.dart';
export 'score_points.dart'; export 'score_points.dart';
export 'sparky_fire_zone.dart'; export 'sparky_fire_zone.dart';

@ -0,0 +1,41 @@
import 'package:flame/components.dart';
import 'package:flame_forge2d/flame_forge2d.dart';
import 'package:pinball/game/components/components.dart';
import 'package:pinball/gen/assets.gen.dart';
import 'package:pinball_components/pinball_components.dart' hide Assets;
/// {@template plunger_zone}
/// A [Blueprint] which creates zone for the [Plunger].
/// {@endtemplate}
class PlungerZone extends Forge2DBlueprint {
/// {@macro plunger_zone}
PlungerZone();
late final Plunger plunger;
@override
void build(Forge2DGame gameRef) {
plunger = ControlledPlunger(compressionDistance: 12.3)
..initialPosition = Vector2(40.1, -38);
final _rocket = _PlungerRocketSpriteComponent();
addAll([_rocket, plunger]);
}
}
class _PlungerRocketSpriteComponent extends SpriteComponent with HasGameRef {
_PlungerRocketSpriteComponent() : super(priority: 5);
@override
Future<void> onLoad() async {
await super.onLoad();
final sprite = await gameRef.loadSprite(
Assets.images.components.rocket.path,
);
this.sprite = sprite;
size = sprite.originalSize / 10;
anchor = Anchor.center;
position = Vector2(43.5, 62);
}
}

@ -48,10 +48,8 @@ class PinballGame extends Forge2DGame
unawaited(addFromBlueprint(LaunchRamp())); unawaited(addFromBlueprint(LaunchRamp()));
unawaited(addFromBlueprint(ControlledSparkyComputer())); unawaited(addFromBlueprint(ControlledSparkyComputer()));
final plunger = ControlledPlunger(compressionDistance: 29) final plungerZone = PlungerZone();
..initialPosition = Vector2(38, -19); unawaited(addFromBlueprint(plungerZone));
await add(plunger);
unawaited(add(Board())); unawaited(add(Board()));
unawaited(add(SparkyFireZone())); unawaited(add(SparkyFireZone()));
unawaited(addFromBlueprint(Slingshots())); unawaited(addFromBlueprint(Slingshots()));
@ -71,7 +69,7 @@ class PinballGame extends Forge2DGame
), ),
); );
controller.attachTo(plunger); controller.attachTo(plungerZone.plunger);
await super.onLoad(); await super.onLoad();
} }

@ -90,8 +90,8 @@ class _PlungerSpriteComponent extends SpriteComponent with HasGameRef {
this.sprite = sprite; this.sprite = sprite;
size = sprite.originalSize / 10; size = sprite.originalSize / 10;
anchor = Anchor.center; anchor = Anchor.center;
position = Vector2(2, 19); position = Vector2(1.5, 13.4);
angle = -0.033; angle = -0.008;
} }
} }

Loading…
Cancel
Save