refactor: position logic

pull/93/head
Allison Ryan 4 years ago
parent daca546ee0
commit 69253e9f8c

@ -77,37 +77,32 @@ class BonusWord extends Component with BlocComponent<GameBloc, GameState> {
@override @override
Future<void> onLoad() async { Future<void> onLoad() async {
await super.onLoad(); await super.onLoad();
final letters = GameBloc.bonusWord.split('');
final rightSide = Vector2(-1, 1);
final bottomOffset = Vector2(-12.92, -1.82);
final midOffset = Vector2(-8.33, 0.65);
final topOffset = Vector2(-2.88, 1.75);
final letter0 = BonusLetter(letter: letters[0], index: 0)
..initialPosition = _position + bottomOffset;
final letter1 = BonusLetter(letter: letters[1], index: 1)
..initialPosition = _position + midOffset;
final letter2 = BonusLetter(letter: letters[2], index: 2)
..initialPosition = _position + topOffset;
final letter3 = BonusLetter(letter: letters[3], index: 3)
..initialPosition = _position + (topOffset..multiply(rightSide));
final letter4 = BonusLetter(letter: letters[4], index: 4)
..initialPosition = _position + (midOffset..multiply(rightSide));
final letter5 = BonusLetter(letter: letters[5], index: 5)
..initialPosition = _position + (bottomOffset..multiply(rightSide));
final letters = GameBloc.bonusWord.split('');
final positions = [
Vector2(-12.92, -1.82),
Vector2(-8.33, 0.65),
Vector2(-2.88, 1.75),
];
final mirroredPositions = positions.reversed
.map((position) => Vector2(position.x * -1, position.y))
.toList();
positions.addAll(mirroredPositions);
assert(positions.length == GameBloc.bonusWord.length, 'Invalid positions');
for (var i = 0; i < GameBloc.bonusWord.length; i++) {
unawaited( unawaited(
addAll([ add(
letter0, BonusLetter(
letter1, letter: letters[i],
letter2, index: i,
letter3, )..initialPosition = positions[i],
letter4, ),
letter5,
]),
); );
} }
} }
}
/// {@template bonus_letter} /// {@template bonus_letter}
/// [BodyType.static] sensor component, part of a word bonus, /// [BodyType.static] sensor component, part of a word bonus,

Loading…
Cancel
Save