feat: included FlutterSignPost

pull/107/head
alestiago 4 years ago
parent b89e076bd8
commit ff6656b055

@ -43,6 +43,8 @@ class FlutterForest extends Component
Future<void> onLoad() async { Future<void> onLoad() async {
gameRef.addContactCallback(DashNestBumperBallContactCallback()); gameRef.addContactCallback(DashNestBumperBallContactCallback());
final signPost = FlutterSignPost()..initialPosition = Vector2(8.35, 58.3);
// TODO(alestiago): adjust positioning once sprites are added. // TODO(alestiago): adjust positioning once sprites are added.
final smallLeftNest = SmallDashNestBumper(id: 'small_left_nest') final smallLeftNest = SmallDashNestBumper(id: 'small_left_nest')
..initialPosition = Vector2(8.95, 51.95); ..initialPosition = Vector2(8.95, 51.95);
@ -52,6 +54,7 @@ class FlutterForest extends Component
..initialPosition = Vector2(18.55, 59.35); ..initialPosition = Vector2(18.55, 59.35);
await addAll([ await addAll([
signPost,
smallLeftNest, smallLeftNest,
smallRightNest, smallRightNest,
bigNest, bigNest,

@ -1,5 +1,6 @@
export 'ball.dart'; export 'ball.dart';
export 'fire_effect.dart'; export 'fire_effect.dart';
export 'flutter_sign_post.dart';
export 'initial_position.dart'; export 'initial_position.dart';
export 'layer.dart'; export 'layer.dart';
export 'shapes/shapes.dart'; export 'shapes/shapes.dart';

@ -0,0 +1,40 @@
import 'package:flame/components.dart';
import 'package:flame_forge2d/flame_forge2d.dart';
import 'package:flutter/material.dart';
import 'package:pinball_components/pinball_components.dart';
/// {@template flutter_sign_post}
/// A sign, found at the FlutterForest.
/// {@endtemplate}
// TODO(alestiago): Revisit doc comment if FlutterForest is moved to package.
class FlutterSignPost extends BodyComponent with InitialPosition {
Future<void> _loadSprite() async {
final sprite = await gameRef.loadSprite(
Assets.images.flutterSignPost.keyName,
);
final spriteComponent = SpriteComponent(
sprite: sprite,
size: Vector2(8.8, 16.5),
anchor: Anchor.bottomCenter,
)..position = Vector2(0.65, 0.45);
await add(spriteComponent);
}
@override
Future<void> onLoad() async {
await super.onLoad();
paint = Paint()
..color = Colors.blue.withOpacity(0.5)
..style = PaintingStyle.fill;
await _loadSprite();
}
@override
Body createBody() {
final shape = CircleShape()..radius = 0.25;
final fixtureDef = FixtureDef(shape);
final bodyDef = BodyDef()..position = initialPosition;
return world.createBody(bodyDef)..createFixture(fixtureDef);
}
}
Loading…
Cancel
Save