mirror of https://github.com/flutter/pinball.git
parent
b89e076bd8
commit
ff6656b055
@ -1,5 +1,6 @@
|
||||
export 'ball.dart';
|
||||
export 'fire_effect.dart';
|
||||
export 'flutter_sign_post.dart';
|
||||
export 'initial_position.dart';
|
||||
export 'layer.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…
Reference in new issue