mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
34 lines
930 B
Dart
34 lines
930 B
Dart
part of game;
|
|
|
|
class ActionCircularMove extends ActionInterval {
|
|
ActionCircularMove(this.setter, this.center, this.radius, this.startAngle, this.clockWise, double duration) : super (duration);
|
|
|
|
final Function setter;
|
|
final Point center;
|
|
final double radius;
|
|
final double startAngle;
|
|
final bool clockWise;
|
|
|
|
void update(double t) {
|
|
if (!clockWise) t = -t;
|
|
double rad = radians(startAngle + t * 360.0);
|
|
Offset offset = new Offset(math.cos(rad) * radius, math.sin(rad) * radius);
|
|
Point pos = center + offset;
|
|
setter(pos);
|
|
}
|
|
}
|
|
|
|
class ActionOscillate extends ActionInterval {
|
|
ActionOscillate(this.setter, this.center, this.radius, double duration) : super(duration);
|
|
|
|
final Function setter;
|
|
final Point center;
|
|
final double radius;
|
|
|
|
void update(double t) {
|
|
double rad = radians(t * 360.0);
|
|
Offset offset = new Offset(math.sin(rad) * radius, 0.0);
|
|
setter(center + offset);
|
|
}
|
|
}
|