mirror of https://github.com/flutter/pinball.git
parent
0bec997178
commit
b87da43dbc
After Width: | Height: | Size: 371 B |
After Width: | Height: | Size: 371 B |
After Width: | Height: | Size: 371 B |
After Width: | Height: | Size: 371 B |
After Width: | Height: | Size: 313 B |
After Width: | Height: | Size: 343 B |
@ -0,0 +1,70 @@
|
||||
import 'package:flame/components.dart';
|
||||
import 'package:flame_forge2d/flame_forge2d.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:pinball_components/pinball_components.dart';
|
||||
|
||||
class GoogleLetter extends BodyComponent with InitialPosition {
|
||||
late final _GoogleLetterSprite _sprite;
|
||||
|
||||
void activate() => _sprite.activate();
|
||||
|
||||
void deactivate() => _sprite.deactivate();
|
||||
|
||||
@override
|
||||
Future<void> onLoad() async {
|
||||
await super.onLoad();
|
||||
await add(_sprite = _GoogleLetterSprite.letter1());
|
||||
}
|
||||
|
||||
@override
|
||||
Body createBody() {
|
||||
final shape = CircleShape()..radius = 1.85;
|
||||
final fixtureDef = FixtureDef(shape)..isSensor = true;
|
||||
|
||||
final bodyDef = BodyDef()
|
||||
..position = initialPosition
|
||||
..userData = this
|
||||
..type = BodyType.static;
|
||||
|
||||
return world.createBody(bodyDef)..createFixture(fixtureDef);
|
||||
}
|
||||
}
|
||||
|
||||
class _GoogleLetterSprite extends SpriteComponent with HasGameRef {
|
||||
_GoogleLetterSprite.letter1()
|
||||
: _spritePath = Assets.images.googleWord.letter1.keyName;
|
||||
|
||||
_GoogleLetterSprite.letter2()
|
||||
: _spritePath = Assets.images.googleWord.letter2.keyName;
|
||||
|
||||
_GoogleLetterSprite.letter3()
|
||||
: _spritePath = Assets.images.googleWord.letter3.keyName;
|
||||
|
||||
_GoogleLetterSprite.letter4()
|
||||
: _spritePath = Assets.images.googleWord.letter4.keyName;
|
||||
|
||||
_GoogleLetterSprite.letter5()
|
||||
: _spritePath = Assets.images.googleWord.letter5.keyName;
|
||||
|
||||
final String _spritePath;
|
||||
|
||||
// TODO(alestiago): Correctly implement activate and deactivate once the
|
||||
// assets are provided.
|
||||
void activate() {
|
||||
tint(Colors.green);
|
||||
}
|
||||
|
||||
void deactivate() {
|
||||
tint(Colors.red);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> onLoad() async {
|
||||
await super.onLoad();
|
||||
|
||||
final sprite = await gameRef.loadSprite(_spritePath);
|
||||
this.sprite = sprite;
|
||||
size = sprite.originalSize / 5;
|
||||
anchor = Anchor.center;
|
||||
}
|
||||
}
|
Loading…
Reference in new issue