Skip to content

Instantly share code, notes, and snippets.

@spydon
Created June 17, 2022 11:30
Show Gist options
  • Save spydon/a17a4d4c901492eebce4815c31bb00e7 to your computer and use it in GitHub Desktop.
Save spydon/a17a4d4c901492eebce4815c31bb00e7 to your computer and use it in GitHub Desktop.
Happy Birthday
import 'package:flame/components.dart';
import 'package:flame/effects.dart';
import 'package:flame/extensions.dart';
import 'package:flame/game.dart';
import 'package:flutter/material.dart';
void main() {
TextPaint textRenderer() => TextPaint(
style: TextStyle(
color: ColorExtension.random(),
fontSize: 40.0,
shadows: [
Shadow(color: ColorExtension.random(), offset: const Offset(2, 2), blurRadius: 2),
const Shadow(color: Colors.yellow, offset: Offset(4, 4), blurRadius: 4),
],
),
);
runApp(
GameWidget(
game: FlameGame(
children: [
for (var i = 0; i < 5; i++)
TextComponent(
text: 'Happy Birthday!',
position: Vector2(250 + i * 150, 250),
textRenderer: textRenderer(),
anchor: Anchor.center,
)
..add(
MoveByEffect(
Vector2(0, -60),
EffectController(
duration: 0.5,
curve: Curves.decelerate,
startDelay: i * 0.2,
alternate: true,
infinite: true,
),
),
)
..add(
RotateEffect.by(
0.5,
EffectController(
duration: 0.5,
curve: Curves.decelerate,
startDelay: i * 0.2,
alternate: true,
infinite: true,
),
),
)
..add(
ScaleEffect.to(
Vector2(1.2, 0.8),
EffectController(
duration: 0.5,
curve: Curves.easeInBack,
startDelay: i * 0.2,
alternate: true,
infinite: true,
),
),
),
],
),
),
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment